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

SvojstvoVrednost
PlatformaNotion
KategorijaPrilagođeno
Složenost podešavanjaLako
Zvanična integracijaNe
Sinhronizovani podaciBaze podataka, Stranice, Korisnici
Tip API-jaREST API
AutentifikacijaInternal Integration Token / OAuth 2.0
Osnovni URLhttps://api.notion.com
Verzija API-ja2022-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
  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: ✓
  1. 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

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

Konfiguracija

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: 26

Mapiranje 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: TAGS

API endpointi

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

EndpointMetodaSvrha
/v1/databases/{id}/queryPOSTUpit stavki baze podataka
/v1/databases/{id}GETDohvatanje šeme baze podataka
/v1/pagesPOSTKreiranje nove stranice
/v1/pages/{id}GETDohvatanje svojstava stranice
/v1/pages/{id}PATCHAžuriranje svojstava stranice
/v1/blocks/{id}/childrenGETDohvatanje dece bloka
/v1/usersGETListanje svih korisnika radnog prostora
/v1/users/{id}GETDohvatanje korisnika
/v1/searchPOSTPretraga 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 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

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

// 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 limitaVrednost
Ograničenje brzine3 zahteva u sekundi po integraciji
Burst limitKratki burst-ovi dozvoljeni, zatim ograničeni
Veličina straniceMaksimalno 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

ProblemUzrokRešenje
401 UnauthorizedNevažeći ili istekao tokenRegeneriši token integracije
403 ForbiddenStranica nije deljena sa integracijomPodeli stranicu/bazu podataka sa integracijom putem Connections
404 Object not foundPogrešan ID baze podataka ili nije deljenaProveri ID baze podataka i podešavanja deljenja
Nedostaju svojstvaNepodudaranje šemePonovo sinhronizuj šemu baze podataka i ažuriraj mapiranje polja
Prekoračen limit brzinePreviše brzih zahtevaSmanji učestalost sinhronizacije ili veličinu batch-a

Debug režim

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

Testiraj vezu

Terminal window
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 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

Povezani resursi

Subscribe to updates

developer-docs

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

auto-detect
AI асистент

Здраво! Питајте ме о документацији.