---
title: "Konektor Notion"
description: "Kompletny przewodnik integracji Notion do synchronizacji baz danych, stron i zawartości workspace z Brevo przez Tajo."
url: https://tajo.io/pl/docs/connectors/custom/notion/
markdown: https://tajo.io/pl/docs/connectors/custom/notion.md
lang: pl-PL
robots: noindex
---

Poproś o wcześniejszy dostęp

Podaj imię i firmowy adres e-mail. Wyślemy Ci link potwierdzający prośbę o dostęp do Tajo.

# Konektor Notion

Status konektora: Planowany Jeszcze niezbudowany. Tajo nie uruchamia dziś tego konektora.

| Pole źródłowe | Pole docelowe | Przykładowa wartość |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Połącz swój workspace Notion z Brevo, aby realizować przepływy marketingowe oparte na treści, synchronizować bazy danych CRM i wysyłać automatyczne powiadomienia przez Tajo.

## Przegląd

| Właściwość | Wartość |
| --- | --- |
| **Platforma** | Notion |
| **Kategoria** | Niestandardowa |
| **Poziom konfiguracji** | Łatwy |
| **Integracja oficjalna** | Nie |
| **Synchronizowane dane** | Bazy danych, Strony, Użytkownicy |
| **Typ API** | REST API |
| **Uwierzytelnianie** | Internal Integration Token / OAuth 2.0 |
| **Bazowy URL** | `https://api.notion.com` |
| **Wersja API** | `2022-06-28` (przez nagłówek `Notion-Version`) |

## Funkcje

- **Synchronizacja baz danych** - Synchronizuj wpisy baz danych Notion z kontaktami i listami Brevo
- **Mostek CRM** - Używaj baz danych Notion jako lekkiego CRM, synchronizowanego z Brevo
- **Powiadomienia o treści** - Wyzwalaj kampanie Brevo, gdy strony Notion są publikowane
- **Mapowanie właściwości** - Mapuj właściwości baz danych Notion na atrybuty kontaktów Brevo
- **Monitorowanie stron** - Śledź aktualizacje stron i przekazuj je jako zdarzenia Brevo
- **Synchronizacja katalogu użytkowników** - Synchronizuj członków workspace Notion z kontaktami Brevo

## Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

1. Workspace Notion z dostępem administratora
2. Wewnętrzną integrację Notion lub aplikację OAuth
3. Strony baz danych udostępnione integracji
4. Konto Brevo z dostępem do API
5. Konto Tajo z aktywną subskrypcją

## Uwierzytelnianie

Notion obsługuje dwie metody uwierzytelniania.

### Opcja 1: Integracja wewnętrzna (zalecane dla pojedynczego workspace)

1. Przejdź do [notion.so/my-integrations](https://www.notion.so/my-integrations)
2. Kliknij **New integration**
3. Nazwij ją „Tajo Integration”
4. Wybierz swój workspace
5. Ustaw możliwości:

```
Content Capabilities:
  Read content: ✓
  Update content: ✓
  Insert content: ✓

User Capabilities:
  Read user information: ✓
```

6. Skopiuj **Internal Integration Secret** (zaczyna się od `ntn_`)

Wymagane udostępnianie stron

Integracje wewnętrzne mogą uzyskiwać dostęp tylko do stron i baz danych jawnie udostępnionych integracji. Udostępnij każdą docelową bazę danych swojej integracji przez menu ”…” > “Connections” > wybierz swoją integrację.

### Opcja 2: OAuth 2.0 (integracje publiczne)

Dla integracji obsługujących wiele workspace’ów użyj przepływu OAuth 2.0:

1. Zarejestruj swoją integrację jako integrację publiczną
2. Przekieruj użytkowników do: `https://api.notion.com/v1/oauth/authorize?client_id=...`
3. Wymień kod na token dostępu pod adresem `/v1/oauth/token`

### Połączenie z Tajo

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

## Konfiguracja

### Podstawowa konfiguracja

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

### Mapowanie pól

Mapuj właściwości baz danych Notion na atrybuty kontaktów Brevo:

```yaml
field_mapping:
  # Notion property -> Brevo attribute
  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
```

## Endpointy API

Tajo integruje się z następującymi endpointami Notion API:

| Endpoint | Metoda | Cel |
| --- | --- | --- |
| `/v1/databases/{id}/query` | POST | Odpytaj wpisy bazy danych |
| `/v1/databases/{id}` | GET | Pobierz schemat bazy danych |
| `/v1/pages` | POST | Utwórz nową stronę |
| `/v1/pages/{id}` | GET | Pobierz właściwości strony |
| `/v1/pages/{id}` | PATCH | Aktualizuj właściwości strony |
| `/v1/blocks/{id}/children` | GET | Pobierz dzieci bloku |
| `/v1/users` | GET | Lista wszystkich użytkowników workspace |
| `/v1/users/{id}` | GET | Pobierz użytkownika |
| `/v1/search` | POST | Wyszukaj w workspace |

## Przykłady kodu

### Inicjalizacja konektora

```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
});
```

### Synchronizuj bazę danych z Brevo

```javascript
// Sync a Notion database to a Brevo list
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
// }
```

### Odpytuj i filtruj

```javascript
// Query Notion database with filters
const results = await tajo.connectors.query('notion', {
  databaseId: 'abc123def456',
  filter: {
    property: 'Status',
    select: { equals: 'Active' }
  },
  sorts: [
    { property: 'Last Contact', direction: 'descending' }
  ]
});
```

### Utwórz stronę ze zdarzenia Brevo

```javascript
// Create a Notion page when a Brevo contact reaches a milestone
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() } }
      }
    });
  }
});
```

## Limity API

Notion stosuje limity szybkości na integrację:

| Typ limitu | Wartość |
| --- | --- |
| **Limit szybkości** | 3 żądania na sekundę na integrację |
| **Limit burst** | Krótkie bursts dozwolone, potem ograniczanie |
| **Rozmiar strony** | Maks. 100 elementów na stronicowane żądanie |

Paginacja oparta na kursorze

Notion używa paginacji opartej na kursorze. Tajo obsługuje to automatycznie, iterując przez wszystkie strony używając parametru `next_cursor` do czasu, gdy `has_more` zwróci `false`.

Notion zwraca `429 Too Many Requests` po przekroczeniu limitów szybkości, z nagłówkiem `Retry-After`.

## Rozwiązywanie problemów

### Typowe problemy

| Problem | Przyczyna | Rozwiązanie |
| --- | --- | --- |
| 401 Unauthorized | Nieprawidłowy lub wygasły token | Wygeneruj ponownie token integracji |
| 403 Forbidden | Strona nie udostępniona integracji | Udostępnij stronę/bazę danych integracji przez Connections |
| 404 Object not found | Nieprawidłowe ID bazy danych lub nie udostępniona | Zweryfikuj ID bazy danych i ustawienia udostępniania |
| Brakujące właściwości | Niezgodność schematu | Ponownie zsynchronizuj schemat bazy danych i zaktualizuj mapowanie pól |
| Przekroczono limit | Za dużo szybkich żądań | Zmniejsz częstotliwość synchronizacji lub rozmiar partii |

### Tryb debug

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

### Test połączenia

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

## Najlepsze praktyki

1. **Udostępniaj bazy danych jawnie** - Integracje wewnętrzne widzą tylko udostępnioną zawartość
2. **Używaj zapytań do baz danych zamiast wyszukiwania** - Zapytania są szybsze i bardziej niezawodne dla znanych baz danych
3. **Ostrożnie mapuj typy właściwości** - Notion ma wiele typów właściwości; dopasuj je do typów atrybutów Brevo
4. **Obsługuj paginację** - Zawsze iteruj przez wszystkie strony kursora dla kompletnych danych
5. **Synchronizuj przyrostowo** - Używaj filtrów `last_edited_time`, aby synchronizować tylko zmienione wpisy
6. **Skonfiguruj harmonogram odpytywania** - Notion nie obsługuje webhooków natywnie; odpytuj w regularnych odstępach czasu

## Bezpieczeństwo

- **Uwierzytelnianie tokenem Bearer** - Sekrety integracji i tokeny OAuth
- **Tylko HTTPS** - Cała komunikacja API zaszyfrowana przez TLS 1.2+
- **Ograniczony dostęp** - Integracje mają dostęp tylko do jawnie udostępnionej zawartości
- **OAuth 2.0** - Bezpieczny przepływ autoryzacji dla integracji publicznych
- **Szyfrowane przechowywanie** - Tokeny szyfrowane w spoczynku w Tajo
- **Izolacja workspace** - Każda integracja jest ograniczona do jednego workspace

## Powiązane zasoby

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