Die Notion-URL-Shortener-Integration ist für die Verbindung selbst am 4. Juni 2026 von Beta auf Live gegangen: ein OAuth-Klick, keine eingefügten Secrets. Der darauf aufbauende Datenbank-Sync ist geplant und noch nicht verfügbar. Sobald er live geht, liest Elido die URLs in jeder Datenbank, die du auswählst, erzeugt gebrandete Kurzlinks auf deiner Domain, schreibt sie in die Tabelle zurück und beobachtet Ziel-Änderungen, mit einer pro Datenbank konfigurierbaren Field-Map.
Dieser Artikel behandelt den OAuth-Connect-Schritt, der live ist, und danach die geplante Sechs-Spalten-Struktur und den 2-Wege-Edit-Flow mit Konfliktlösung. Wenn du den früheren Notion-Kurzlinks-Walkthrough gelesen hast: Das hier ist der tiefere Schnitt.
Ein-Klick-OAuth: Was tatsächlich passiert, wenn du auf Connect klickst
Alte Token-Paste-Flows verlangten, ein internes Notion-Integrationstoken zu erzeugen, einzufügen und dann jede Datenbank von Hand mit der Integration zu teilen. Das ist Vergangenheit. Der neue Flow sind drei Klicks: Connect in Elido, Workspace + Datenbanken im Notion-Consent-Screen auswählen, fertig. Der OAuth-Tanz folgt dem Standard aus den Notion-API-Authentifizierungs-Docs. Notion unterstützt kein PKCE, der Austausch ist also ein einfacher Authorization-Code-Flow, geschützt durch einen State-Parameter.
Notion hat zum Zeitpunkt der Autorisierung keine Auswahl pro Scope; die Capabilities werden auf Elidos Seite der Integration festgelegt, und du wählst, welche Seiten und Datenbanken sie sehen darf. Die Capabilities sind absichtlich eng gefasst:
- read_content - liest die Eigenschaften Destination, Tags und Title auf den Datenbanken, die du ausgewählt hast.
- insert_content - erstellt neue Zeilen, wenn du Elido bittest, einen Link aus einer externen Quelle zu erzeugen (ein Zap, ein Webhook, eine CSV).
- update_content - schreibt die Eigenschaften Short URL, Clicks, QR und Last Synced zurück.
Elido fragt nie nach workspace-weitem Lesezugriff oder nach Seiten, die du nicht angehakt hast. Notion erzwingt das auch serverseitig: Eine Abfrage gegen eine Datenbank außerhalb der Freigabe liefert einen 403. Die Notion-API-Referenz für Datenbank-Operationen behandelt die Verben, die die Integration nutzt.
Wenn du den Consent abschließt, ruft dein Browser api.elido.app/v1/oauth/notion/callback mit dem Auth-Code auf. api-core tauscht den Code gegen ein Access Token, verschlüsselt das Token (gemäß ADR-0036) und speichert es in external_oauth_connections. Das Klartext-Token landet nie auf der Festplatte oder in Logs. Zusätzlich landet eine Zeile im Audit-Log, damit ein Admin sehen kann, wer welchen Notion-Workspace wann verbunden hat.
Der Connect-Button sitzt im Integrations-Tab pro Workspace, genau wie bei jedem anderen Anbieter im Integrations-Katalog. Die Notion-Integrationsseite zeigt einen Screenshot des Consent-Screens. Berechtigungen sind über Notions Settings-, Connections-Panel widerrufbar; Disconnect in Elido markiert die Verbindung auf Elidos Seite als widerrufen.
Zwei Modi: Attach oder Create
Im Attach-Modus verweist du Elido auf eine bestehende Datenbank mit einer URL-Eigenschaft. Elido fügt nur die Spalten hinzu, die es braucht, und benennt nichts um. Im Create-Modus richtet Elido eine neue Datenbank "Elido Links" innerhalb der Seite ein, die du wählst. Die meisten Teams wählen Attach, weil ihre Kampagnentabelle schon mit Quartalen an Historie existiert. So oder so ist das Schema unten identisch.
Field-Mapping: Die sechs Spalten und warum sie so aussehen
Alles von hier bis zum Setup-Walkthrough beschreibt den geplanten Sync, nicht das, was heute live ist. Heute erlaubt die Verbindung Elido, deine geteilten Datenbanken aufzulisten und über den API-Client Zeilen darin zu erstellen.
Hier das Spalten-Layout, das die Integration verwendet. Die Namen sind Standardwerte, du kannst sie pro Datenbank unter Settings, Notion, Field map umbenennen.
| Column | Notion type | Direction | Notes |
|---|---|---|---|
| Short URL | URL | Elido schreibt | Nur lesbar auf Nutzerseite; Bearbeiten bewirkt nichts. |
| Destination | URL | Notion schreibt | Das Ziel, auf das der Kurzlink zeigt. Editierbar. |
| Tags | Multi-select | Beidseitig | Tags werden bei Konflikten per Set-Union zusammengeführt. |
| Clicks | Number | Elido schreibt | Alle 5 Minuten gepollt. Nur lesbar. |
| QR | Files | Elido schreibt | Ein 1024px-PNG des QR-Codes für die Kurz-URL. |
| Last Synced | Date | Elido schreibt | UTC-Zeitstempel der letzten Sync-Berührung. |
Ein paar Entscheidungen, die eine Erwähnung wert sind.
Clicks ist absichtlich nicht live. Notion hat keine Streaming-Primitive, und den Endpunkt pro Klick zu bombardieren würde das Rate-Limit verbrennen. Fünf Minuten passen zur Aktualität, die die meisten Ops-Teams brauchen. Für Echtzeit steht ein Webhook-Event pro Klick auf der Roadmap; bis es kommt, ziehst du Klicks aus der Analytics-API. Notion ist die Kampagnenansicht; der Analytics-Feed ist der Firehose.
QR ist eine Files-Eigenschaft, keine URL. Notion rendert keine externen Bild-URLs in Tabellen, wohl aber angehängte Dateien als Thumbnails. Elido lädt das PNG beim ersten Sync hoch und lädt es nur erneut hoch, wenn sich die Kurz-URL ändert. Siehe die QR-Codes-Feature-Seite und den GS1-QR-Leitfaden.
Tags ist beidseitig mit Set-Union. Die einzige Spalte, in die beide Seiten schreiben. Taggst du eine Zeile in Notion mit "launch-2026", und Elido hat "winter-promo" aus einem Zap, existieren beim nächsten Sync beide Tags auf beiden Seiten. Entfernungen propagieren ebenfalls. Das Audit-Log erfasst jede Änderung.
Für UTM-Parameter hängt der Leitfaden zu UTM-Templates ein Template an einen Ordner, damit jeder Link den richtigen utm_source erbt. Die Destination-Spalte bleibt sauber, und Elido hängt Parameter zum Zeitpunkt der Klick-Auflösung über Smart-Link-Regeln an.
Der 2-Wege-Edit-Flow: Wer gewinnt, wenn Notion und Elido nicht übereinstimmen
Das ist der Teil, der Teams am meisten interessiert, weil Sync-Tools eine Geschichte stiller Überschreibungen haben. Hier der Vertrag.
Der geplante Worker in api-core pollt jede verbundene Datenbank alle fünf Minuten auf Änderungen seit dem letzten last_edited_time-Wasserzeichen. Bei einer Eigenschaftsänderung lädt er die Field-Map und entscheidet über die Ownership. Die Regeln sind fix:
- Notion besitzt: Destination, Tags (Schreib-Seite), Title.
- Elido besitzt: Short URL, Clicks, QR, Last Synced.
- Gemeinsam: Tags (Lese-Seite, beide Seiten sehen die zusammengeführte Menge).
Hat sich ein Notion-besessenes Feld in Notion geändert, aktualisiert Elido den internen Zustand und sendet ein integration.notion.sync-Event. Hat sich ein Elido-besessenes Feld geändert (ein Klickzahl-Tick), schreibt Elido beim nächsten Sync zurück.
Der interessante Fall ist eine Kollision. Angenommen, du änderst Destination in Notion um 14:02:10, und ein Zap schreibt um 14:02:30 eine neue Destination an Elido, im selben Fünf-Minuten-Fenster. Notion besitzt Destination, Notion gewinnt also. Elido verwirft den Schreibvorgang des Zaps, postet einen Kommentar an der Zeile ("Destination conflict at 14:02:30, kept Notion value, see audit log") und sendet ein Konflikt-Event, das über Webhooks abonnierbar ist. Der Zap hört zu und entscheidet, ob er es erneut versucht oder alarmiert.
Nirgendwo stille Überschreibungen. Jeder Schreibvorgang wird geloggt. Jeder Konflikt bekommt einen Zeilen-Kommentar. Für eine dauerhafte Aufzeichnung leitest du den Audit-Stream über den ClickHouse-Export-Leitfaden in dein Warehouse oder sprichst direkt die GraphQL-API an.
Wann die Ziel-Änderung NICHT propagieren sollte
Manchmal bearbeitest du eine Destination als Entwurf. Zwei Muster helfen.
Status-Eigenschaft als Wächter. Füge ein Select namens "Sync" mit Draft, Live, Paused hinzu. Die Integration synchronisiert nur Zeilen, bei denen Sync = Live ist. Erst in Draft vorbereiten, dann auf Live umschalten, der nächste Tick übernimmt es. Die meisten Marketing-Teams landen am Ende bei diesem Muster.
Die ganze Datenbank pausieren. Settings, Notion, Pause pro Datenbank. Nützlich während einer Migration oder Massenbearbeitungen.
Setup-Walkthrough: Von null zur ersten synchronisierten Zeile in 4 Minuten
Schritt 1 funktioniert heute. Die Schritte 2 bis 5 kommen mit dem geplanten Sync.
- Notion verbinden. Workspace settings, Integrations, Notion, Connect. Workspace auswählen, Datenbanken ankreuzen, Allow.
- Eine Datenbank auswählen. Settings, Notion, "Add database." Das Dropdown listet jede Datenbank, die du freigegeben hast. Eine auswählen.
- Felder mappen. Destination, Title und den Rest bestätigen. Fehlende Eigenschaften? Elido bietet an, sie zu erstellen.
- Eine Domain auswählen. Eine gebrandete Domain für die Kurzlinks wählen. Noch keine Custom Domain? Die Standarddomain wählen; die Migration ist später ein Klick entfernt.
- Speichern und Backfill. Elido liest jede Zeile, erzeugt für jede mit einer Destination, aber ohne Short URL, einen Kurzlink und schreibt zurück. Bestehende Short URLs bleiben unangetastet.
Die reale Zeit liegt bei rund 4 Minuten für 200 Zeilen. Größere Backfills stoßen bei kostenlosen Workspaces an Notions Limit von drei Anfragen pro Sekunde. Eine Datenbank mit 5.000 Zeilen braucht etwa 30 Minuten für den Backfill; der Worker arbeitet in Batches und setzt bei Rate-Limiting von selbst fort.
Wann du das hier vs Zapier vs die API direkt einsetzt
Es gibt drei Wege, die sich nicht gegenseitig ausschließen.
Die native Integration ist der richtige Standard, wenn Notion der Ort ist, an dem die Arbeit passiert. OAuth, Konfliktlösung, Audit-Log, Field-Map, kein Code.
Ein Zap eignet sich für Multi-Step-Workflows ("when a row is added AND a Slack reaction lands, then create a link"). Für ein Eins-zu-eins-Mapping von Zeile zu Link ist die native Integration schneller und günstiger. Siehe den Zapier-Automatisierungs-Beitrag.
Die REST API ist richtig, wenn du einen eigenen Workflow auf Elido aufbaust. Für Entwickler, die Produktintegrationen bauen, ist der Quellcode unter services/api-core/internal/integrations/notion/ klein genug, um in einem Rutsch gelesen zu werden.
Im Vergleich zu Bitly oder Rebrandly: Keines von beiden hat zum Zeitpunkt dieses Artikels eine native Notion-Integration. Beide brauchen Zapier oder ein eigenes Skript. Siehe die Seite vs Bitly für den Unterschied und die Preisseite dafür, welche Pläne unbegrenzte Notion-Datenbanken enthalten.
Troubleshooting: Die vier Probleme, die uns in der Beta getroffen haben
Während der Beta tauchten vier Problemklassen auf. Mehrere betreffen den geplanten Sync statt der live geschalteten Verbindung, aber es hilft zu wissen, worauf man achten sollte.
"Database not found" nach einer Workspace-Umbenennung. Wenn ein Notion-Admin den Workspace umbenennt, bleibt die Workspace-ID stabil, aber gecachte Metadaten werden auf unserer Seite bis zu eine Stunde lang veraltet. Workaround: "Force re-sync" in Settings, Notion klicken. Die Cache-TTL ist in Produktion auf 15 Minuten gesetzt, das ist also größtenteils ein Beta-Artefakt.
Rate-Limit während eines großen Backfills. Notions Limit pro Integration liegt bei drei Anfragen pro Sekunde. Eine Datenbank mit 5.000 Zeilen stößt beim initialen Backfill hart daran. Der Worker weicht exponentiell zurück (250ms, 500ms, 1s, 2s, gedeckelt bei 8s) und macht weiter. Du siehst "Throttled by Notion, resuming" im Activity Log; das ist normal.
Property-Type-Mismatch. Der häufigste Beta-Bug. Ein Nutzer hat für Destination eine Notion-Spalte vom Typ "Text" statt "URL" gewählt. Der Field-Map-Validator markiert das jetzt beim Speichern und verweigert die Fortsetzung. Siehst du "Destination must be a URL property," ändere zuerst den Spaltentyp in Notion.
Multi-Workspace-Nutzer mit geteilten Datenbanken. Ist dieselbe Person Mitglied in zwei Notion-Workspaces und wollen beide Elido verbinden, braucht jeder Workspace seine eigene OAuth-Freigabe. Das Token ist pro Workspace, nicht pro Nutzer. Der Connect-Flow handhabt das korrekt; rechne einfach damit, zweimal auf Connect zu klicken.
Für alles, was nicht auf dieser Liste steht, geht die Kontaktseite direkt an das Integrations-Team. Dort sehen wir Probleme schneller als im generischen Support.
Was als Nächstes kommt
Zwei Folgeprojekte auf der Roadmap. Ein Rezept "Notion form to short link", damit eine Formular-Einreichung einen getrackten Link erzeugt. Und ein 2-Wege-Sync auf einer Workspace-Eigenschaft, damit ein Link folgt, wenn du eine Zeile zwischen Datenbanken verschiebst. Beide liegen im Plan für Q3; wir vermerken sie im Changelog.
Um die Wirkung zu messen, behandelt der Kurzlink-Analytics-Einstieg, welche Metriken wirklich zählen und wie du die Notion-Dashboard-Zeilen einrichtest, damit sie die richtigen Fragen beantworten.
Häufig gestellte Fragen
Welche Scopes fordert die Notion-Integration an?
Elido fordert insert_content, update_content und read_content für die Seiten oder Datenbanken an, die du im OAuth-Consent-Schritt auswählst. Das reicht aus, um neue Zeilen hinzuzufügen, Kurz-URLs und Klickzahlen zurückzuschreiben und Ziel-Änderungen zu lesen. Elido fragt nie nach workspace-weitem Zugriff, und die Freigabe ist auf das beschränkt, was du in Notions Consent-UI angehakt hast.
Kann ich die Ziel-URL in Notion bearbeiten und Elido folgt automatisch?
Das ist das geplante Verhalten, noch nicht live: Ein Field Watcher wird alle fünf Minuten auf Änderungen an der Destination-Eigenschaft pollen. Ändert sich die URL, aktualisiert Elido das Ziel des Links in api-core, schreibt eine neue Zeile ins Audit-Log und löst einen Webhook aus, damit nachgelagerte Systeme Bescheid wissen. Die Kurz-URL selbst ändert sich nie, bestehende QR-Codes und gedruckte Materialien funktionieren also weiterhin.
Wie funktioniert die Konfliktlösung, wenn beide Seiten gleichzeitig bearbeiten?
Das sind die geplanten Sync-Regeln. Notion ist die Quelle der Wahrheit für Destination, Tags und Title. Elido ist die Quelle der Wahrheit für Short URL, Clicks, QR und Last Synced. Kollidiert eine Eigenschaft innerhalb eines Sync-Fensters, gewinnt die Seite, der das Feld gehört, und die verlierende Seite bekommt einen Kommentar an der Zeile, der erklärt, was passiert ist. Es gibt kein stilles Überschreiben.
Funktioniert die Integration mit Notions kostenlosem Plan?
Ja, mit zwei Einschränkungen. Kostenlose Notion-Workspaces haben ein API-Rate-Limit von drei Anfragen pro Sekunde, sehr große Datenbanken (5.000+ Zeilen) synchronisieren daher in Batches von 100 mit kleinem Backoff. Zweitens braucht die Integration beim ersten Mal einen Admin im Notion-Workspace, der die OAuth-Freigabe genehmigt. Danach kann jeder mit Bearbeitungsrechten an der Datenbank einen manuellen Re-Sync auslösen.
Was passiert, wenn ich die Integration trenne?
Elido markiert die Verbindung auf seiner Seite als widerrufen; Notion hat keinen Token-Revocation-Endpunkt, entferne also zusätzlich die Elido-Verbindung unter Settings, Connections in Notion. Bestehende Zeilen bleiben mit intakten Kurz-URLs in der Datenbank, aber Clicks und Last Synced hören auf, sich zu aktualisieren. Verbindest du dich später erneut, macht die Integration dort weiter, wo sie aufgehört hat, und füllt die Klickzahlen nach, die sich während der Trennung angesammelt haben.
Elido testen
URL einfügen, kurzer Link in Sekunden
Kein Konto nötig. Link bleibt 30 Tage aktiv. Konto erstellen, um ihn dauerhaft zu behalten.
Kostenlos, keine Anmeldung erforderlich · 2 pro Tag