Connecteur Notion

Connectez votre workspace Notion à Brevo pour des workflows marketing pilotés par le contenu, la synchronisation de base de données CRM et des notifications automatisées via Tajo.

Vue d’ensemble

PropriétéValeur
PlateformeNotion
CatégorieCustom
Complexité d’installationFacile
Intégration officielleNon
Données synchroniséesBases de données, pages, utilisateurs
Type d’APIAPI REST
AuthentificationInternal Integration Token / OAuth 2.0
URL de basehttps://api.notion.com
Version d’API2022-06-28 (via en-tête Notion-Version)

Fonctionnalités

  • Synchronisation de base de données, Synchronisez les entrées de base de données Notion vers les contacts et listes Brevo
  • Pont CRM, Utilisez les bases de données Notion comme CRM léger, synchronisées vers Brevo
  • Notifications de contenu, Déclenchez des campagnes Brevo lors de la publication de pages Notion
  • Mappage de propriétés, Mappez les propriétés de base de données Notion vers les attributs de contact Brevo
  • Surveillance des pages, Suivez les mises à jour de pages et transférez-les en tant qu’événements Brevo
  • Synchronisation de l’annuaire utilisateur, Synchronisez les membres du workspace Notion vers les contacts Brevo

Prérequis

Avant de commencer, assurez-vous de disposer de :

  1. Un workspace Notion avec accès admin
  2. Une intégration interne Notion ou une application OAuth
  3. Des pages de base de données partagées avec l’intégration
  4. Un compte Brevo avec accès API
  5. Un compte Tajo avec un abonnement actif

Authentification

Notion prend en charge deux méthodes d’authentification.

Option 1 : Intégration interne (recommandée pour un workspace unique)

  1. Allez sur notion.so/my-integrations
  2. Cliquez sur New integration
  3. Nommez-la « Tajo Integration »
  4. Sélectionnez votre workspace
  5. Définissez les capacités :
Content Capabilities:
Read content: ✓
Update content: ✓
Insert content: ✓
User Capabilities:
Read user information: ✓
  1. Copiez le Internal Integration Secret (commence par ntn_)

Partage de pages requis

Les intégrations internes ne peuvent accéder qu’aux pages et bases de données explicitement partagées avec elles. Partagez chaque base de données cible avec votre intégration via le menu « … » > « Connections » > sélectionnez votre intégration.

Option 2 : OAuth 2.0 (intégrations publiques)

Pour les intégrations servant plusieurs workspaces, utilisez le flux OAuth 2.0 :

  1. Enregistrez votre intégration en tant qu’intégration publique
  2. Redirigez les utilisateurs vers : https://api.notion.com/v1/oauth/authorize?client_id=...
  3. Échangez le code contre un token d’accès sur /v1/oauth/token

Connexion à Tajo

Terminal window
tajo connectors install notion \
--token $NOTION_TOKEN

Configuration

Configuration de base

connectors:
notion:
enabled: true
api_version: "2022-06-28"
sync:
databases: true
pages: false
users: true
databases:
- id: "abc123def456"
name: "Customers"
sync_to_list: 25
- id: "ghi789jkl012"
name: "Leads"
sync_to_list: 26

Mappage des champs

Mappez les propriétés de base de données Notion vers les attributs de contact Brevo :

field_mapping:
# Propriété Notion -> Attribut Brevo
Name:
type: title
target: FIRSTNAME
Email:
type: email
target: email
Phone:
type: phone_number
target: SMS
Company:
type: rich_text
target: COMPANY
Status:
type: select
target: LEAD_STATUS
Deal Value:
type: number
target: DEAL_VALUE
Last Contact:
type: date
target: LAST_CONTACT_DATE
Tags:
type: multi_select
target: TAGS

Endpoints API

Tajo s’intègre avec les endpoints suivants de l’API Notion :

EndpointMéthodeObjet
/v1/databases/{id}/queryPOSTInterroger les entrées d’une base de données
/v1/databases/{id}GETRécupérer le schéma d’une base de données
/v1/pagesPOSTCréer une nouvelle page
/v1/pages/{id}GETRécupérer les propriétés d’une page
/v1/pages/{id}PATCHMettre à jour les propriétés d’une page
/v1/blocks/{id}/childrenGETRécupérer les enfants d’un bloc
/v1/usersGETLister tous les utilisateurs du workspace
/v1/users/{id}GETRécupérer un utilisateur
/v1/searchPOSTRechercher dans tout le workspace

Exemples de code

Initialiser le connecteur

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('notion', {
token: process.env.NOTION_TOKEN
});

Synchroniser une base de données vers Brevo

// Synchroniser une base de données Notion vers une liste Brevo
await tajo.connectors.sync('notion', {
type: 'full',
resources: ['databases'],
databaseId: 'abc123def456',
targetList: 25
});
const status = await tajo.connectors.status('notion');
console.log(status);
// {
// connected: true,
// lastSync: '2024-03-15T14:30:00Z',
// databasesSynced: 2,
// pagesTracked: 1450,
// usersCount: 32
// }

Requête avec filtres

// Interroger une base de données Notion avec filtres
const results = await tajo.connectors.query('notion', {
databaseId: 'abc123def456',
filter: {
property: 'Status',
select: { equals: 'Active' }
},
sorts: [
{ property: 'Last Contact', direction: 'descending' }
]
});

Créer une page depuis un événement Brevo

// Créer une page Notion lorsqu'un contact Brevo atteint un jalon
tajo.events.on('contact.attribute_updated', async (event) => {
if (event.attribute === 'LIFECYCLE_STAGE' && event.value === 'customer') {
await tajo.connectors.create('notion', {
databaseId: 'ghi789jkl012',
properties: {
Name: { title: [{ text: { content: event.contact.name } }] },
Email: { email: event.contact.email },
'Converted Date': { date: { start: new Date().toISOString() } }
}
});
}
});

Limites de débit

Notion impose des limites de débit par intégration :

Type de limiteValeur
Limite de débit3 requêtes par seconde par intégration
Limite de burstBursts courts autorisés, puis throttling
Taille de page100 éléments max par requête paginée

Pagination basée sur curseur

Notion utilise une pagination basée sur un curseur. Tajo gère cela automatiquement en itérant sur toutes les pages via le paramètre next_cursor jusqu’à ce que has_more renvoie false.

Notion renvoie 429 Too Many Requests lorsque les limites de débit sont dépassées, avec un en-tête Retry-After.

Dépannage

Problèmes courants

ProblèmeCauseSolution
401 UnauthorizedToken invalide ou expiréRégénérez le token d’intégration
403 ForbiddenPage non partagée avec l’intégrationPartagez la page/base de données avec l’intégration via Connections
404 Object not foundID de base de données incorrect ou non partagéVérifiez l’ID de la base et les paramètres de partage
Propriétés manquantesSchéma non correspondantRe-synchronisez le schéma de la base de données et mettez à jour le mappage des champs
Limite de débit dépasséeTrop de requêtes rapidesRéduisez la fréquence de synchronisation ou la taille du batch

Mode debug

connectors:
notion:
debug: true
log_level: verbose
log_api_calls: true

Tester la connexion

Terminal window
tajo connectors test notion
# ✓ API authentication successful
# ✓ Database access verified
# ✓ User list accessible
# ✓ Search operational
# ✓ Page creation available

Bonnes pratiques

  1. Partagez les bases de données explicitement, Les intégrations internes ne voient que le contenu partagé
  2. Utilisez les requêtes de base de données plutôt que la recherche, Les requêtes sont plus rapides et plus fiables pour les bases connues
  3. Mappez les types de propriétés avec soin, Notion a de nombreux types de propriétés ; faites-les correspondre aux types d’attributs Brevo
  4. Gérez la pagination, Itérez toujours sur toutes les pages du curseur pour des données complètes
  5. Synchronisez de manière incrémentale, Utilisez des filtres last_edited_time pour ne synchroniser que les entrées modifiées
  6. Mettez en place une planification de polling, Notion ne prend pas en charge les webhooks nativement ; interrogez à intervalles réguliers

Sécurité

  • Authentification par Bearer Token, Secrets d’intégration et tokens OAuth
  • HTTPS uniquement, Toutes les communications API chiffrées via TLS 1.2+
  • Accès à portée limitée, Les intégrations n’accèdent qu’au contenu explicitement partagé
  • OAuth 2.0, Flux d’autorisation sécurisé pour les intégrations publiques
  • Stockage chiffré, Tokens chiffrés au repos dans Tajo
  • Isolation de workspace, Chaque intégration est limitée à un workspace unique

Ressources associées

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.