Notion konektor
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š:
- Notion radni prostor sa admin pristupom
- Notion internu integraciju ili OAuth aplikaciju
- Stranice baze podataka deljene sa integracijom
- Brevo nalog sa API pristupom
- Tajo nalog sa aktivnom pretplatom
Autentifikacija
Notion podržava dva metoda autentifikacije.
Opcija 1: Interna integracija (preporučeno za jedan radni prostor)
- Idi na notion.so/my-integrations
- Klikni New integration
- Nazovi je “Tajo Integration”
- Izaberi svoj radni prostor
- Postavi mogućnosti:
Content Capabilities: Read content: ✓ Update content: ✓ Insert content: ✓
User Capabilities: Read user information: ✓- 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:
- Registruj svoju integraciju kao javnu integraciju
- Preusmeri korisnike na:
https://api.notion.com/v1/oauth/authorize?client_id=... - Zameni kod za access token na
/v1/oauth/token
Povezivanje sa Tajo
tajo connectors install notion \ --token $NOTION_TOKENKonfiguracija
Osnovno podešavanje
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: 26Mapiranje polja
Mapiranje Notion svojstava baze podataka na Brevo atribute kontakta:
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: TAGSAPI 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
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
// Sync a Notion database to a Brevo listawait 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
// Query Notion database with filtersconst 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
// Create a Notion page when a Brevo contact reaches a milestonetajo.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
connectors: notion: debug: true log_level: verbose log_api_calls: trueTestiraj vezu
tajo connectors test notion# ✓ API authentication successful# ✓ Database access verified# ✓ User list accessible# ✓ Search operational# ✓ Page creation availableNajbolje prakse
- Eksplicitno deli baze podataka - Interne integracije vide samo deljeni sadržaj
- Koristi upite baze podataka umesto pretrage - Upiti su brži i pouzdaniji za poznate baze podataka
- Pažljivo mapiraj tipove svojstava - Notion ima mnogo tipova svojstava; podudaraj ih sa Brevo tipovima atributa
- Obradi paginaciju - Uvek iteriraj kroz sve stranice kursora za kompletne podatke
- Sinhronizuj inkrementalno - Koristi
last_edited_timefiltere za sinhronizaciju samo promenjenih stavki - 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 deljeном 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