---
title: "Connecteur Notion"
description: "Guide complet d'intégration Notion pour synchroniser bases de données, pages et contenu de workspace avec Brevo via Tajo."
url: https://tajo.io/fr/docs/connectors/custom/notion/
markdown: https://tajo.io/fr/docs/connectors/custom/notion.md
lang: fr-FR
robots: noindex
---

Demandez un accès anticipé

Indiquez votre prénom et votre adresse e-mail professionnelle. Nous vous enverrons un lien pour confirmer votre demande d’accès à Tajo.

# Connecteur Notion

Statut du connecteur: Prévu Pas encore construit. Tajo n'exécute pas ce connecteur aujourd'hui.

| Champ source | Champ de destination | Valeur d’exemple |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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 |
| --- | --- |
| **Plateforme** | Notion |
| **Catégorie** | Custom |
| **Complexité d’installation** | Facile |
| **Intégration officielle** | Non |
| **Données synchronisées** | Bases de données, pages, utilisateurs |
| **Type d’API** | API REST |
| **Authentification** | Internal Integration Token / OAuth 2.0 |
| **URL de base** | `https://api.notion.com` |
| **Version d’API** | `2022-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](https://www.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: ✓
```

6. 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

```bash
tajo connectors install notion \
  --token $NOTION_TOKEN
```

## Configuration

### Configuration de base

```yaml
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 :

```yaml
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 :

| Endpoint | Méthode | Objet |
| --- | --- | --- |
| `/v1/databases/{id}/query` | POST | Interroger les entrées d’une base de données |
| `/v1/databases/{id}` | GET | Récupérer le schéma d’une base de données |
| `/v1/pages` | POST | Créer une nouvelle page |
| `/v1/pages/{id}` | GET | Récupérer les propriétés d’une page |
| `/v1/pages/{id}` | PATCH | Mettre à jour les propriétés d’une page |
| `/v1/blocks/{id}/children` | GET | Récupérer les enfants d’un bloc |
| `/v1/users` | GET | Lister tous les utilisateurs du workspace |
| `/v1/users/{id}` | GET | Récupérer un utilisateur |
| `/v1/search` | POST | Rechercher dans tout le workspace |

## Exemples de code

### Initialiser le connecteur

```javascript
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

```javascript
// 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

```javascript
// 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

```javascript
// 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 limite | Valeur |
| --- | --- |
| **Limite de débit** | 3 requêtes par seconde par intégration |
| **Limite de burst** | Bursts courts autorisés, puis throttling |
| **Taille de page** | 100 é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ème | Cause | Solution |
| --- | --- | --- |
| 401 Unauthorized | Token invalide ou expiré | Régénérez le token d’intégration |
| 403 Forbidden | Page non partagée avec l’intégration | Partagez la page/base de données avec l’intégration via Connections |
| 404 Object not found | ID 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 manquantes | Schéma non correspondant | Re-synchronisez le schéma de la base de données et mettez à jour le mappage des champs |
| Limite de débit dépassée | Trop de requêtes rapides | Réduisez la fréquence de synchronisation ou la taille du batch |

### Mode debug

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

### Tester la connexion

```bash
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

- [Connecteur Airtable](https://tajo.io/fr/docs/connectors/custom/airtable)
- [Connecteur GitHub](https://tajo.io/fr/docs/connectors/custom/github)
- [Connecteur Linear](https://tajo.io/fr/docs/connectors/custom/linear)
- [API Contacts Brevo](https://tajo.io/fr/docs/contact-management)
