10 min de lectureIntégrations

Intégration du raccourcisseur d'URL avec Notion : OAuth + synchronisation bidirectionnelle de base de données

Connectez Notion via OAuth, synchronisez les liens courts Elido dans une base de données Notion et récupérez les modifications de destination. Mappage des champs, portées, dépannage.

Ana Kowalska
Marketing solutions engineering
Lignes d'une base de données Notion synchronisées avec les liens courts Elido et affichant les compteurs de clics en direct, illustrant l'intégration du raccourcisseur d'URL avec Notion

L'intégration du raccourcisseur d'URL avec Notion est passée de Beta à Active le 4 juin 2026. Si vous utilisez Notion comme centre de campagnes, Elido lit les URLs dans toute base de données que vous choisissez, crée des liens courts personnalisés sur votre domaine, les réécrit dans le tableau et surveille les modifications de destination. Un clic OAuth, pas de secrets à coller, mappage des champs configurable par base de données.

Cet article couvre l'étape de connexion OAuth avec les portées, la structure à six colonnes et le flux d'édition bidirectionnel avec résolution des conflits. Si vous avez lu le précédent guide sur les liens courts Notion, voici l'analyse approfondie.

OAuth en un clic : ce qui se passe réellement quand vous appuyez sur Connecter

Les anciens flux de collage de tokens vous demandaient de générer un token d'intégration interne Notion, de le coller, puis de partager manuellement chaque base de données avec l'intégration. C'est terminé. Le nouveau flux comporte trois clics : Connecter dans Elido, choisir l'espace de travail et les bases de données dans l'écran de consentement de Notion, terminé. L'échange OAuth suit le standard de la documentation d'authentification de l'API Notion, avec PKCE lors de l'échange du code d'autorisation.

Les portées accordées sont délibérément étroites :

  • read_content - lire les propriétés Destination, Tags et Title sur les bases de données sélectionnées.
  • insert_content - créer de nouvelles lignes quand vous demandez à Elido de créer un lien depuis une source externe (un Zap, un webhook, un CSV).
  • update_content - réécrire les propriétés Short URL, Clicks, QR et Last Synced.

Elido ne demande jamais un accès en lecture à l'ensemble de l'espace de travail ni à des pages non sélectionnées. Notion l'applique également côté serveur : une requête sur une base de données hors portée retourne un 403. La référence de l'API Notion pour les opérations sur les bases de données couvre les verbes utilisés par l'intégration.

Lorsque vous complétez le consentement, votre navigateur accède à api.elido.app/v1/oauth/notion/callback avec le code d'autorisation. api-core échange le code contre un token d'accès, chiffre le token avec la clé KMS de l'espace de travail (conformément à l'ADR-0036) et le stocke dans integration_credentials. Le token en clair ne touche ni le disque ni les logs. Une entrée est également créée dans le journal d'audit pour qu'un administrateur puisse voir qui a connecté quel espace de travail Notion et quand.

Échange OAuth entre Elido et Notion : l'utilisateur clique sur Connecter, le navigateur redirige vers notion.com/install, l'utilisateur choisit l'espace de travail et les bases de données, le callback vers api.elido.app stocke le token chiffré

Le bouton de connexion se trouve dans l'onglet Intégrations de chaque espace de travail, comme pour tout autre fournisseur du catalogue des intégrations. La page d'intégration Notion présente une capture d'écran de l'écran de consentement. Les autorisations sont révocables depuis les Paramètres de Notion, panneau Connexions - révoquer depuis ce panneau déclenche un webhook qui efface le token côté Elido dans les 60 secondes.

Deux modes : associer ou créer

En mode association, vous pointez Elido vers une base de données existante avec une propriété URL. Elido ajoute uniquement les colonnes dont il a besoin, sans rien renommer. En mode création, Elido provisionne une nouvelle base de données "Elido Links" dans la page choisie. La plupart des équipes préfèrent le mode association car leur tableau de campagnes existe déjà avec des trimestres d'historique. Dans tous les cas, le schéma est identique.

Mappage des champs : les six colonnes et leurs raisons d'être

Voici la structure de colonnes utilisée par l'intégration. Les noms sont ceux par défaut, vous pouvez les renommer par base de données dans Paramètres, Notion, Mappage des champs.

ColonneType NotionDirectionNotes
Short URLURLElido écritEn lecture seule côté utilisateur ; la modifier n'a aucun effet.
DestinationURLNotion écritLa cible vers laquelle pointe le lien court. Modifiable.
TagsSélection multipleBidirectionnelLes tags sont fusionnés par union ensembliste en cas de conflit.
ClicksNombreElido écritMis à jour toutes les 5 minutes. Lecture seule.
QRFichiersElido écritUn PNG de 1024px du QR code pour l'URL courte.
Last SyncedDateElido écritHorodatage UTC de la dernière synchronisation.

Quelques choix méritent d'être expliqués.

Clicks n'est intentionnellement pas en temps réel. Notion ne dispose d'aucun primitif de streaming, et appeler leur endpoint à chaque clic épuiserait le quota de requêtes. Cinq minutes correspond à la fraîcheur dont la plupart des équipes ops ont besoin. Pour le temps réel, déclenchez un webhook sur les événements de clic de lien et redirigez-le vers votre propre tableau de bord. Notion est la vue campagne ; le webhook est le flux de données.

QR est une propriété de type Fichiers, pas URL. Notion ne rend pas les URLs d'images externes dans les tableaux, mais il affiche les fichiers joints sous forme de miniatures. Elido télécharge le PNG lors de la première synchronisation et le retélécharge uniquement si l'URL courte change. Consultez la page de la fonctionnalité QR codes et le guide QR GS1.

Tags est bidirectionnel avec union ensembliste. La seule colonne où les deux parties écrivent. Taguez une ligne "launch-2026" dans Notion, Elido a "winter-promo" d'un Zap, à la prochaine synchronisation les deux tags existent des deux côtés. Les suppressions se propagent. Le journal d'audit enregistre chaque modification.

Pour les paramètres UTM, le guide des modèles UTM associe un modèle à un dossier pour que chaque lien hérite du bon utm_source. La colonne Destination reste propre, et Elido ajoute les paramètres au moment de la résolution du clic via les règles de liens intelligents.

Le flux d'édition bidirectionnel : qui gagne quand Notion et Elido ne sont pas d'accord

C'est la partie qui intéresse le plus les équipes, car les outils de synchronisation ont un historique d'écrasements silencieux. Voici le contrat.

Un worker dans api-core interroge chaque base de données connectée toutes les cinq minutes à la recherche de modifications depuis le dernier marqueur last_edited_time. Sur une modification de propriété, il charge le mappage des champs et détermine la propriété. Les règles sont fixes :

  • Notion possède : Destination, Tags (côté écriture), Title.
  • Elido possède : Short URL, Clicks, QR, Last Synced.
  • Partagé : Tags (côté lecture ; les deux parties voient l'ensemble fusionné).

Si un champ appartenant à Notion a changé dans Notion, Elido met à jour l'état interne et émet un événement integration.notion.sync. Si un champ appartenant à Elido a changé (une incrémentation du compteur de clics), Elido le réécrit lors de la prochaine synchronisation.

Le cas intéressant est une collision. Supposons que vous changiez Destination dans Notion à 14:02:10 et qu'un Zap écrive une nouvelle Destination dans Elido à 14:02:30, dans la même fenêtre de cinq minutes. Notion possède Destination, donc Notion gagne. Elido abandonne l'écriture du Zap, publie un commentaire sur la ligne ("Conflit Destination à 14:02:30, valeur Notion conservée, voir journal d'audit") et émet un événement de conflit auquel on peut s'abonner via les webhooks. Le Zap écoute et décide s'il réessaie ou envoie une alerte.

Tableau de base de données Notion avec les colonnes Short URL, Destination, Tags, Clicks, QR et Last Synced affichant trois exemples de lignes avec des icônes de statut de synchronisation

Pas d'écrasements silencieux nulle part. Chaque écriture est consignée. Chaque conflit reçoit un commentaire sur la ligne. Pour un enregistrement permanent, envoyez le flux d'audit dans votre entrepôt de données via le guide d'export ClickHouse ou accédez directement à l'API GraphQL.

Quand la modification de destination ne doit PAS se propager

Parfois, vous modifiez une destination en brouillon. Deux approches s'avèrent utiles.

Propriété Status comme garde-fou. Ajoutez une sélection nommée "Sync" avec les valeurs Draft, Live, Paused. L'intégration synchronise uniquement les lignes où Sync = Live. Travaillez en Draft, passez à Live, le prochain cycle le prend en compte. La plupart des équipes marketing finissent par adopter cette méthode.

Mettre en pause toute la base de données. Paramètres, Notion, pause par base de données. Utile lors d'une migration ou d'éditions en masse.

Guide de configuration : de zéro à la première ligne synchronisée en 4 minutes

  1. Connecter Notion. Paramètres de l'espace de travail, Intégrations, Notion, Connecter. Choisissez l'espace de travail, cochez les bases de données, Autoriser.
  2. Choisir une base de données. Paramètres, Notion, "Ajouter une base de données". La liste déroulante affiche toutes les bases de données autorisées. Choisissez-en une.
  3. Mapper les champs. Confirmez Destination, Title et les autres. Des propriétés manquantes ? Elido propose de les créer.
  4. Choisir un domaine. Choisissez un domaine personnalisé pour les liens courts. Pas encore de domaine personnalisé ? Choisissez le domaine par défaut ; la migration se fait en un clic plus tard.
  5. Enregistrer et remplir. Elido lit chaque ligne, génère un lien court pour celles qui ont une Destination mais pas de Short URL, et réécrit les résultats. Les Short URLs existants ne sont pas modifiés.

Le temps réel est d'environ 4 minutes pour 200 lignes. Les remplissages plus importants atteignent la limite de trois requêtes par seconde de Notion pour les espaces de travail gratuits. Une base de données de 5 000 lignes se remplit en environ 30 minutes ; le worker traite par lots et reprend automatiquement en cas de limitation.

Quand utiliser ceci plutôt que Zapier ou l'API directement

Il existe trois voies, non mutuellement exclusives.

L'intégration native est le bon choix par défaut si Notion est là où le travail se fait. OAuth, résolution des conflits, journal d'audit, mappage des champs, sans code.

Un Zap convient aux workflows à plusieurs étapes ("quand une ligne est ajoutée ET qu'une réaction Slack arrive, alors créer un lien"). Pour un mappage simple ligne-à-lien, l'intégration native est plus rapide et moins chère. Consultez l'article sur l'automatisation Zapier.

L'API REST convient si vous construisez un workflow personnalisé sur Elido. Pour les développeurs qui créent des intégrations produit, le code source sous services/api-core/internal/integrations/notion/ est suffisamment concis pour être lu en une seule session.

Comparé à Bitly ou Rebrandly : aucun des deux ne dispose d'une intégration native avec Notion au moment de la rédaction. Les deux nécessitent Zapier ou un script personnalisé. Consultez la page vs Bitly pour les différences et la page de tarification pour savoir quels plans incluent les bases de données Notion illimitées.

Dépannage : les quatre problèmes rencontrés en Beta

Pendant les huit semaines de Beta, quatre catégories de problèmes sont apparues. Tous sont maintenant gérés dans le code, mais il est utile de savoir quoi chercher.

"Base de données introuvable" après un renommage d'espace de travail. Si un administrateur Notion renomme l'espace de travail, l'ID de l'espace de travail reste stable mais les métadonnées en cache deviennent obsolètes de notre côté pendant jusqu'à une heure. Solution de contournement : appuyez sur "Forcer la resynchronisation" dans Paramètres, Notion. Le TTL du cache est de 15 minutes en production, ce qui en fait principalement un artefact de la Beta.

Limite de débit lors d'un grand remplissage. La limite par intégration de Notion est de trois requêtes par seconde. Une base de données de 5 000 lignes la dépasse fortement lors du remplissage initial. Le worker applique un délai exponentiel (250ms, 500ms, 1s, 2s, plafonné à 8s) et reprend. Vous verrez "Throttled by Notion, resuming" dans le journal d'activité ; c'est normal.

Inadéquation du type de propriété. Le bug le plus fréquent en Beta. Un utilisateur a choisi une colonne Notion de type "Texte" pour Destination au lieu de "URL". Le validateur du mappage des champs détecte désormais cela à l'enregistrement et refuse de continuer. Si vous voyez "Destination doit être une propriété URL", modifiez d'abord le type de colonne dans Notion.

Utilisateur multi-espaces de travail avec des bases de données partagées. Si la même personne est membre de deux espaces de travail Notion et que les deux souhaitent connecter Elido, chaque espace de travail a besoin de sa propre autorisation OAuth. Le token est par espace de travail, pas par utilisateur. Le flux de connexion gère cela correctement ; attendez-vous simplement à cliquer deux fois sur Connecter.

Pour tout ce qui ne figure pas sur cette liste, la page de contact va directement à l'équipe des intégrations. Les problèmes y sont détectés plus rapidement que dans le support général.

Ce qui arrive ensuite

Deux ajouts sont prévus dans la feuille de route. Une recette "formulaire Notion vers lien court" pour qu'une soumission de formulaire génère un lien tracké. Et une synchronisation bidirectionnelle sur une propriété Workspace pour qu'un lien puisse suivre quand vous déplacez une ligne entre des bases de données. Les deux sont prévus pour le T3 ; nous les noterons dans le changelog.

Pour mesurer l'impact, l'introduction à l'analytique des liens courts couvre les métriques qui comptent vraiment et comment configurer les lignes du tableau de bord Notion pour qu'elles répondent aux bonnes questions.

Questions fréquentes

Quelles portées l'intégration Notion demande-t-elle ?

Elido demande insert_content, update_content et read_content sur les pages ou bases de données que vous sélectionnez à l'étape de consentement OAuth. C'est suffisant pour ajouter de nouvelles lignes, écrire les URLs courtes et les compteurs de clics, et lire les modifications de destination. Elido ne demande jamais un accès à l'ensemble de l'espace de travail, et l'autorisation est limitée à ce que vous avez coché dans l'interface de consentement de Notion.

Puis-je modifier l'URL de destination dans Notion et faire suivre Elido ?

Oui. Un observateur de champ interroge toutes les cinq minutes les modifications de la propriété Destination. Si l'URL change, Elido met à jour la cible du lien dans api-core, écrit une nouvelle ligne dans le journal d'audit et déclenche un webhook pour informer les systèmes en aval. L'URL courte elle-même ne change jamais, donc les QR codes existants et les supports imprimés continuent de fonctionner.

Comment fonctionne la résolution des conflits lorsque les deux parties modifient en même temps ?

Notion est la source de vérité pour Destination, Tags et Title. Elido est la source de vérité pour Short URL, Clicks, QR et Last Synced. Si une propriété entre en conflit pendant une fenêtre de synchronisation, le côté qui possède le champ gagne et l'autre reçoit un commentaire sur la ligne expliquant ce qui s'est passé. Il n'y a pas d'écrasement silencieux.

L'intégration fonctionne-t-elle avec le plan gratuit de Notion ?

Oui, avec deux nuances. Les espaces de travail gratuits de Notion ont une limite d'API de trois requêtes par seconde, donc les très grandes bases de données (plus de 5 000 lignes) se synchronisent par lots de 100 avec un court délai. De plus, l'intégration nécessite qu'un administrateur de l'espace de travail Notion approuve l'autorisation OAuth la première fois. Ensuite, toute personne disposant des droits d'édition de la base de données peut déclencher une resynchronisation manuelle.

Que se passe-t-il si je déconnecte l'intégration ?

Le token OAuth est révoqué et la copie chiffrée dans api-core est effacée dans les 60 secondes. Les lignes existantes restent dans la base de données avec leurs URLs courtes intactes, mais Clicks et Last Synced cessent de se mettre à jour. Si vous reconnectez plus tard, l'intégration reprend là où elle s'était arrêtée et comble les compteurs de clics accumulés pendant la déconnexion.

Essayer Elido

Collez une URL, obtenez un lien court

Sans inscription. Lien actif 30 jours. Inscrivez-vous pour le garder pour toujours.

Gratuit, sans inscription · 2 par jour

Essayer Elido

Raccourcisseur d'URL hébergé en UE : domaines personnalisés, analyses approfondies et API ouverte. Forfait gratuit - sans carte bancaire.

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

Lire la suite