---
title: "Notion konektor"
description: "Kompletan vodič za Notion integraciju za sinhronizaciju baza podataka, stranica i sadržaja radnog prostora sa Brevo putem Tajo."
url: https://tajo.io/sr/docs/connectors/custom/notion/
markdown: https://tajo.io/sr/docs/connectors/custom/notion.md
lang: sr-Latn-RS
robots: noindex
---

Zatražite rani pristup

Unesite ime i poslovnu adresu e-pošte. Poslaćemo vam vezu za potvrdu zahteva za pristup Taju.

# Notion konektor

Status konektora: Planirano Još nije izrađeno. Tajo danas ne pokreće ovaj konektor.

| Izvorno polje | Odredišno polje | Primer vrednosti |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Poveži svoj Notion radni prostor sa Brevo za marketing tokove pokretane sadržajem, sinhronizaciju CRM baze podataka i automatizovana obaveštenja putem Tajo.

## Pregled

| Svojstvo | Vrednost |
| --- | --- |
| **Platforma** | Notion |
| **Kategorija** | Prilagođeno |
| **Složenost podešavanja** | Lako |
| **Zvanična integracija** | Ne |
| **Sinhronizovani podaci** | Baze podataka, Stranice, Korisnici |
| **Tip API-ja** | REST API |
| **Autentifikacija** | Internal Integration Token / OAuth 2.0 |
| **Osnovni URL** | `https://api.notion.com` |
| **Verzija API-ja** | `2022-06-28` (putem `Notion-Version` headera) |

## Karakteristike

- **Sinhronizacija baze podataka** - Sinhronizacija Notion stavki baze podataka sa Brevo kontaktima i listama
- **CRM most** - Koristi Notion baze podataka kao lagani CRM, sinhronizovan sa Brevo
- **Obaveštenja o sadržaju** - Pokretanje Brevo kampanja kada se Notion stranice objave
- **Mapiranje svojstava** - Mapiranje Notion svojstava baze podataka na Brevo atribute kontakta
- **Praćenje stranica** - Praćenje ažuriranja stranica i prosleđivanje kao Brevo događaja
- **Sinhronizacija korisničkog direktorijuma** - Sinhronizacija članova Notion radnog prostora sa Brevo kontaktima

## Preduslovi

Pre nego što započneš, proveri da imaš:

1. Notion radni prostor sa admin pristupom
2. Notion internu integraciju ili OAuth aplikaciju
3. Stranice baze podataka deljene sa integracijom
4. Brevo nalog sa API pristupom
5. Tajo nalog sa aktivnom pretplatom

## Autentifikacija

Notion podržava dva metoda autentifikacije.

### Opcija 1: Interna integracija (preporučeno za jedan radni prostor)

1. Idi na [notion.so/my-integrations](https://www.notion.so/my-integrations)
2. Klikni **New integration**
3. Nazovi je “Tajo Integration”
4. Izaberi svoj radni prostor
5. Postavi mogućnosti:

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

User Capabilities:
  Read user information: ✓
```

6. Kopiraj **Internal Integration Secret** (počinje sa `ntn_`)

Potrebno je deljenje stranice

Interne integracije mogu pristupiti samo stranicama i bazama podataka koje su eksplicitno podeljene sa njima. Podeli svaku ciljnu bazu podataka sa svojom integracijom putem menija ”…” > “Connections” > izaberi svoju integraciju.

### Opcija 2: OAuth 2.0 (javne integracije)

Za integracije koje opslužuju više radnih prostora, koristi OAuth 2.0 tok:

1. Registruj svoju integraciju kao javnu integraciju
2. Preusmeri korisnike na: `https://api.notion.com/v1/oauth/authorize?client_id=...`
3. Zameni kod za access token na `/v1/oauth/token`

### Povezivanje sa Tajo

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

## Konfiguracija

### Osnovno podešavanje

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

### Mapiranje polja

Mapiranje Notion svojstava baze podataka na Brevo atribute kontakta:

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

## API endpointi

Tajo se integriše sa sledećim Notion API endpointima:

| Endpoint | Metoda | Svrha |
| --- | --- | --- |
| `/v1/databases/{id}/query` | POST | Upit stavki baze podataka |
| `/v1/databases/{id}` | GET | Dohvatanje šeme baze podataka |
| `/v1/pages` | POST | Kreiranje nove stranice |
| `/v1/pages/{id}` | GET | Dohvatanje svojstava stranice |
| `/v1/pages/{id}` | PATCH | Ažuriranje svojstava stranice |
| `/v1/blocks/{id}/children` | GET | Dohvatanje dece bloka |
| `/v1/users` | GET | Listanje svih korisnika radnog prostora |
| `/v1/users/{id}` | GET | Dohvatanje korisnika |
| `/v1/search` | POST | Pretraga kroz radni prostor |

## Primeri koda

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

### Sinhronizacija baze podataka sa 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
// }
```

### Upit i filtriranje

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

### Kreiranje stranice iz Brevo događaja

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

## Ograničenja brzine

Notion primenjuje ograničenja brzine po integraciji:

| Tip limita | Vrednost |
| --- | --- |
| **Ograničenje brzine** | 3 zahteva u sekundi po integraciji |
| **Burst limit** | Kratki burst-ovi dozvoljeni, zatim ograničeni |
| **Veličina stranice** | Maksimalno 100 stavki po paginiranom zahtevu |

Paginacija zasnovana na kursoru

Notion koristi paginaciju zasnovanu na kursoru. Tajo to obrađuje automatski, iterirajući kroz sve stranice koristeći parametar `next_cursor` dok `has_more` ne vrati `false`.

Notion vraća `429 Too Many Requests` kada se prekorače limiti brzine, sa `Retry-After` headerom.

## Rešavanje problema

### Česti problemi

| Problem | Uzrok | Rešenje |
| --- | --- | --- |
| 401 Unauthorized | Nevažeći ili istekao token | Regeneriši token integracije |
| 403 Forbidden | Stranica nije deljena sa integracijom | Podeli stranicu/bazu podataka sa integracijom putem Connections |
| 404 Object not found | Pogrešan ID baze podataka ili nije deljena | Proveri ID baze podataka i podešavanja deljenja |
| Nedostaju svojstva | Nepodudaranje šeme | Ponovo sinhronizuj šemu baze podataka i ažuriraj mapiranje polja |
| Prekoračen limit brzine | Previše brzih zahteva | Smanji učestalost sinhronizacije ili veličinu batch-a |

### Debug režim

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

### Testiraj vezu

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

## Najbolje prakse

1. **Eksplicitno deli baze podataka** - Interne integracije vide samo deljeni sadržaj
2. **Koristi upite baze podataka umesto pretrage** - Upiti su brži i pouzdaniji za poznate baze podataka
3. **Pažljivo mapiraj tipove svojstava** - Notion ima mnogo tipova svojstava; podudaraj ih sa Brevo tipovima atributa
4. **Obradi paginaciju** - Uvek iteriraj kroz sve stranice kursora za kompletne podatke
5. **Sinhronizuj inkrementalno** - Koristi `last_edited_time` filtere za sinhronizaciju samo promenjenih stavki
6. **Postavi raspored ispitivanja** - Notion ne podržava webhook-ove nativno; ispituj u redovnim intervalima

## Bezbednost

- **Bearer Token autentifikacija** - Secrets integracije i OAuth tokeni
- **Samo HTTPS** - Sva API komunikacija enkriptovana putem TLS 1.2+
- **Skopovani pristup** - Integracije pristupaju samo eksplicitno deljenom sadržaju
- **OAuth 2.0** - Bezbedan tok autorizacije za javne integracije
- **Enkriptovano skladištenje** - Tokeni enkriptovani u mirovanju u Tajo
- **Izolacija radnog prostora** - Svaka integracija je skopovana na jedan radni prostor

## Povezani resursi

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