Business Digital

Migrer de Notion ou Confluence vers Outline : tutoriel complet 2026

11 دقائق للقراءة

📍 Article principal de la série : Outline 2026 : guide pratique.

Vous avez 3 ans de documentation dans Notion ou Confluence et vous voulez basculer sur Outline auto-hébergé sans perdre une page. Ce tutoriel détaille la procédure validée chez plusieurs PME francophones avec des workspaces de 500 à 5 000 pages : export, import, mapping des permissions, période parallèle, validation.

Prérequis

  • Outline en production avec admin actif.
  • Accès admin Notion (Owner) ou Confluence (Site Admin).
  • Niveau attendu : intermédiaire.
  • Temps estimé : 1 à 5 jours selon volume.

Étape 1 — Audit du workspace source

Sur Notion : Settings → Members + lister teams/spaces. Sur Confluence : Site administration → Spaces. Documenter :

  • Nombre total de pages.
  • Nombre d’espaces/teamspaces.
  • Nombre d’utilisateurs.
  • Permissions par espace.
  • Liens externes (Slack, GitHub, Figma).

Étape 2 — Export depuis Notion

Notion : Settings → Export workspace → format Markdown & CSV → Include subpages : YES → Export. Téléchargement en ZIP (peut faire plusieurs Go pour gros workspaces).

Astuce : pour > 1 000 pages, exporter par teamspace séparément, plus facile à debugger.

Étape 3 — Export depuis Confluence

Confluence Cloud : Site Administration → Apps → Backup Manager → Create backup → format XML. Téléchargement après notification email (peut prendre 1-2 heures pour gros sites).

Confluence Server : Site Admin → Backup → format XML.

Étape 4 — Préparer Outline

Sur Outline, créer une collection vide par teamspace/space source (« Engineering », « Marketing », « Onboarding »). Permissions appropriées à reproduire.

Étape 5 — Import dans Outline

Outline supporte l’import natif :

  • Notion : Outline admin → Settings → Import → Notion → Upload ZIP.
  • Confluence : import nécessite outil tiers (confluence-to-outline sur GitHub) car format XML complexe.
  • Markdown brut : Outline accepte upload ZIP de fichiers .md, idéal pour imports custom.

Comptez 30 minutes pour 500 pages, 2 heures pour 5 000 pages.

Étape 6 — Vérification post-import

  • Comparer nombre de pages source vs Outline.
  • Spot-check 10 pages aléatoires : titre, contenu, images, liens internes.
  • Vérifier images uploadées correctement (S3 MinIO).
  • Tester recherche full-text sur termes connus.

Étape 7 — Réparer les liens internes

Notion utilise UUID dans ses URLs, Outline utilise slugs. Liens internes Notion → Outline cassés. Outline tente la réparation auto, mais 5-15% nécessitent intervention manuelle. Lancer recherche sur Outline pour notion.so et remplacer les liens.

Étape 8 — Recréer les permissions

Pour chaque collection Outline, ajouter les membres ayant accès dans le système source. Si SSO Authentik configuré, utiliser groupes pour bulk assign.

Étape 9 — Période parallèle 30 jours

Pendant 30 jours, garder Notion/Confluence en lecture seule + Outline éditable. Toute nouvelle page créée uniquement dans Outline. Les utilisateurs continuent à consulter Notion/Confluence pour anciens contenus si Outline incomplet.

Étape 10 — Décommissionnement source

Au jour J+30 :

  1. Export final Notion/Confluence pour archive.
  2. Annuler abonnement (Notion = perte des données après 30 jours, Confluence = délai variable).
  3. Communication interne : Outline est désormais source unique.
  4. Supprimer bookmarks Notion dans Slack, navigateur.

Erreurs fréquentes

Erreur Cause Solution
Images cassées après import S3 MinIO pas accessible Vérifier credentials + bucket public read
Tableaux Notion mal rendus Format Notion DB différent Convertir DB Notion en page CSV puis import
Pages dupliquées Multiple imports successifs Outline détecte mais pas toujours, vérifier manuellement
Liens internes cassés UUID Notion vs slug Outline Search & replace en bulk via API Outline
Permissions perdues Pas de mapping auto Recréer manuellement par collection
Mentions @utilisateur cassées UserID source ≠ Outline Outline garde texte plain « @nom »

Ce qu’il faut savoir avant de déployer en sous-région

Trois précisions. Bande passante : un workspace Notion 5 Go nécessite plusieurs heures de download depuis Afrique sur connexion partagée. Faire l’export depuis VPS Hetzner directement. Coût migration : prestataire externe à 800-2 500 USD pour 5 000 pages. Ou faire en interne avec ce tutoriel. Annonce équipe : 7 jours préavis + webinar 30 minutes pour formation Outline. Migration psychologique aussi importante que technique.

Tutoriels frères

FAQ

Notion databases conservées ? Partiellement. Tables simples OK, vues complexes (Kanban, Calendar) perdues. Outline n’a pas l’équivalent.

Confluence macros (Page Tree, etc.) ? Perdues. Outline n’a pas équivalent. Recréer manuellement quand pertinent.

Historique versions ? Non importable. Outline démarre l’historique à zéro après import.

Migration partielle ? Oui, importer collection par collection, à votre rythme.

Support BookStack en parallèle ? Outline pour wiki collaboratif, BookStack pour documentation structurée. Pas concurrents.

Sur le même thème

Etape 1 : Cartographier le contenu Notion ou Confluence avant export

Avant de toucher au moindre bouton d’export, dressez l’inventaire : nombre d’espaces (workspaces), nombre de pages, volume des pieces jointes (PDF, images, video), comptes utilisateurs actifs, integrations tierces (Slack, GitHub, Linear, Jira). Pour une PME de 20 personnes a Dakar avec 18 mois d’historique Notion, comptez environ 600 a 1 200 pages, 3 a 8 Go de PJ et 4 a 7 espaces distincts. Outline est plus minimaliste, alors anticipez ce que vous allez archiver plutot que migrer.

Resultat attendu : un tableur listant chaque espace source, son volume, le proprietaire et le sort prevu (migrer, archiver, supprimer).

Etape 2 : Installer Outline self-hosted ou souscrire au cloud

Pour le self-hosted, deployez Outline avec Docker Compose sur un VPS de 4 Go de RAM minimum (12 a 20 EUR/mois soit 7 871 a 13 119 FCFA chez Hetzner ou Scaleway). Pour la version cloud officielle, comptez 10 USD par utilisateur et par mois sur le plan Business. Self-hosted donne plus de controle (souverainete des donnees, conformite ARTCI au Senegal) mais demande de gerer backups, TLS, mises a jour.

# Compose minimal Outline 0.79+ avec Postgres et Redis
git clone https://github.com/outline/outline.git
cd outline
cp .env.sample .env
# Editez .env : URL, SECRET_KEY, DATABASE_URL, REDIS_URL, AWS_S3_*
docker compose up -d

Sortie attendue : trois conteneurs Up (outline, postgres, redis). Verifiez l’acces sur https://wiki.votredomaine.sn avec un certificat Let’s Encrypt valide. Configurez le SSO (Google Workspace, Microsoft Entra, OIDC generique) avant d’inviter les utilisateurs.

Etape 3 : Exporter Notion au format Markdown + CSV

Dans Notion, ouvrez chaque espace, allez dans Parametres puis Parametres et membres puis Exporter tout le contenu de l’espace. Choisissez le format Markdown et CSV (PAS HTML, qui perd la structure). Cochez Inclure les sous-pages et Inclure les fichiers. Notion genere un .zip qui peut peser plusieurs Go selon le volume. Pour les gros workspaces, l’export peut prendre 20 minutes a 2 heures, vous recevez un mail quand c’est pret.

Decompressez le .zip dans un dossier de travail. Vous obtenez une arborescence reflectant les pages et sous-pages, avec les images dans des sous-dossiers. Verifiez que rien n’est tronque (les noms de fichiers Notion peuvent depasser la limite Windows de 255 caracteres).

Etape 4 : Exporter Confluence en XML ou via Space Export

Dans Confluence Cloud, allez dans l’espace concerne, Parametres de l’espace puis Contenu puis Exporter, choisissez XML pour preserver les commentaires et l’historique, ou HTML pour une consultation rapide. Pour Confluence Server/Data Center, le menu est similaire. Pour migrer vers Outline, l’export HTML ou Markdown est plus pratique car Outline ne lit pas le XML proprietaire d’Atlassian.

# Si vous avez l'API token Confluence, scriptez l'export par espace
curl -u email@domain.com:API_TOKEN   "https://votreorg.atlassian.net/wiki/rest/api/space/SPACE_KEY/content/export"   -H "Accept: application/json"

Sortie attendue : un identifiant de tache d’export a suivre, puis une URL de telechargement. Pour les gros espaces, l’export peut etre coupe en plusieurs archives.

Etape 5 : Convertir le contenu vers le format d’import Outline

Outline accepte nativement les imports Notion (.zip Markdown), Confluence (HTML zip), Markdown plat, et fichiers individuels Word/PDF. Allez dans Outline, Parametres puis Import / Export puis Choisir un fichier. Selectionnez le .zip Notion ou Confluence. Outline detecte automatiquement la structure et reconstruit l’arborescence comme une collection.

Pour un controle plus fin (renommer des pages, fusionner des sections, normaliser les titres), passez par un script Python qui parcourt le Markdown, applique des regex de nettoyage, puis reconstruit un .zip propre avant import. Comptez 1 a 3 jours de travail pour un workspace de 1 000 pages a nettoyer manuellement, vs 20 minutes pour un import brut.

Etape 6 : Reconstruire les liens internes casses apres import

Notion utilise des UUID pour ses liens internes, Confluence utilise des slugs. Apres import dans Outline, ces liens pointent vers du vide. Ouvrez chaque page critique, recherchez les liens cassees (texte souligne sans cible) et reliez-les manuellement aux nouvelles pages Outline. Pour automatiser, utilisez une table de correspondance UUID Notion vers slug Outline et un script qui parcourt l’API Outline pour recoller les liens.

# Lister les pages Outline via API pour generer la table de correspondance
curl -X POST -H "Authorization: Bearer VOTRE_TOKEN"   -H "Content-Type: application/json"   -d '{"limit":100,"offset":0}'   https://wiki.votredomaine.sn/api/documents.list | jq '.data[] | {id, title, url}'

Sortie attendue : un JSON listant chaque document avec son id, titre et url. Sauvegardez-le, c’est la base de votre script de recollement.

Etape 7 : Migrer les utilisateurs et reaffecter les permissions

Dans Outline, allez dans Parametres puis Membres puis Inviter. Pour 20+ comptes, utilisez l’invitation en masse par CSV ou activez le SSO et laissez Google ou Microsoft provisionner automatiquement. Recreez ensuite les groupes (Direction, Tech, Commercial, RH) qui correspondent a vos collections. Outline a une granularite de permission par collection (lecture, ecriture, admin), plus simple mais moins fine que Notion ou Confluence.

Communiquez aux equipes : nouvelle URL, mode de connexion (SSO de preference), arborescence des collections. Prevoyez une session de formation de 45 minutes avec demo des fonctionnalites cles : recherche, edition collaborative, commentaires, raccourcis clavier.

Etape 8 : Geler l’ancien systeme et planifier l’archivage

Une fois Outline en production, mettez Notion ou Confluence en mode lecture seule pendant 30 jours. Communiquez clairement la date de coupure totale. A la fin de cette periode, exportez une derniere fois (au cas ou), puis resilier l’abonnement. Conservez l’archive .zip dans deux emplacements differents (S3 chiffre + disque externe) pendant au moins 5 ans pour des raisons de tracabilite.

# Sauvegarde chiffree de l'archive Notion vers S3 compatible
gpg --cipher-algo AES256 --symmetric notion-export.zip
aws s3 cp notion-export.zip.gpg s3://votre-bucket-archives/2026/

Sortie attendue : confirmation S3 du transfert. Notez la passphrase GPG dans votre coffre-fort de mots de passe (Bitwarden, Vaultwarden self-hosted), pas dans un fichier texte.

Etape 9 : Surveiller l’adoption et ajuster pendant 60 jours

Outline expose des statistiques d’usage par collection et par utilisateur. Verifiez chaque semaine pendant 2 mois quelles collections sont les plus consultees, quelles pages sont orphelines, qui ne s’est jamais connecte. Reorganisez en consequence : fusionnez les collections sous-utilisees, mettez en avant les pages cles via la fonction Pinned, supprimez les doublons crees par la migration.

Dans la continuité, voyez aussi notre tutoriel sur le deploiement de Caddy en reverse proxy devant Outline (TLS automatique, cache, headers de securite), et notre guide sur la sauvegarde Postgres pour les apps self-hosted depuis Dakar, Abidjan, Cotonou.

Etape 10 : Mettre en place les sauvegardes automatiques de la base Outline

Outline stocke ses metadonnees dans Postgres et les pieces jointes dans S3 (ou un compatible comme MinIO, Wasabi, Backblaze B2). Sans backup automatique, une corruption de Postgres ou un rm -rf malheureux signifie la perte de toute votre documentation. Configurez un dump quotidien Postgres + une replication S3 vers un bucket de sauvegarde dans une autre region.

# Cron quotidien a 2h pour dump Postgres compresse
0 2 * * * docker exec outline-postgres pg_dump -U outline outline |   gzip > /mnt/backups/outline-$(date +\%Y\%m\%d).sql.gz &&   find /mnt/backups -name "outline-*.sql.gz" -mtime +30 -delete

Sortie attendue : un fichier .sql.gz par jour, retention 30 jours. Pour les PJ, utilisez aws s3 sync ou rclone sync vers le bucket de sauvegarde. Comptez 3 a 8 EUR/mois (1 968 a 5 248 FCFA) pour un bucket Backblaze B2 de 100 Go en cible de backup.

Etape 11 : Tester une restauration complete chaque trimestre

Une sauvegarde non testee n’est pas une sauvegarde. Tous les 3 mois, montez un Outline de test sur un VPS jetable, restaurez le dernier dump Postgres et synchronisez les PJ depuis le bucket de backup. Verifiez que vous pouvez vous connecter, ouvrir une page au hasard et voir ses images correctement. Documentez le temps total de restauration : c’est votre RTO (Recovery Time Objective) reel.

# Restaurer un dump Postgres dans un Outline neuf
gunzip -c outline-20260501.sql.gz |   docker exec -i outline-postgres-test psql -U outline outline

Sortie attendue : une sequence de CREATE TABLE et INSERT sans erreur. Si la restauration echoue, vous decouvrez le probleme en exercice et non le jour ou l’incident frappe la production.

مشاركة