Notion Connector
Poveži svoje delovno okolje Notion z Brevo za marketinške tokove, ki temeljijo na vsebini, sinhronizacijo CRM baz podatkov in avtomatska obvestila prek Tajo.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | Notion |
| Kategorija | Po meri |
| Zahtevnost nastavitve | Enostavna |
| Uradna integracija | Ne |
| Sinhronizirani podatki | Baze podatkov, strani, uporabniki |
| Tip API | REST API |
| Avtentikacija | Notranji integracijski žeton / OAuth 2.0 |
| Osnovni URL | https://api.notion.com |
| Različica API | 2022-06-28 (prek glave Notion-Version) |
Funkcionalnosti
- Sinhronizacija baz podatkov – sinhronizacija vnosov baz podatkov Notion s stiki in seznami Brevo
- Most za CRM – uporabi baze podatkov Notion kot lahek CRM, sinhroniziran z Brevo
- Obvestila o vsebini – sproži kampanje Brevo, ko so strani Notion objavljene
- Preslikava lastnosti – preslikaj lastnosti baze podatkov Notion v atribute stikov Brevo
- Spremljanje strani – sledi posodobitvam strani in jih posreduj kot dogodke Brevo
- Sinhronizacija imenika uporabnikov – sinhronizacija članov delovnega okolja Notion s stiki Brevo
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Delovno okolje Notion z administratorskim dostopom
- Notranjo integracijo ali OAuth aplikacijo Notion
- Strani baz podatkov, ki so deljene z integracijo
- Brevo račun z dostopom do API
- Tajo račun z aktivno naročnino
Avtentikacija
Notion podpira dve metodi avtentikacije.
Možnost 1: Notranja integracija (priporočeno za eno delovno okolje)
- Pojdi na notion.so/my-integrations
- Klikni New integration
- Poimenuj jo “Tajo Integration”
- Izberi svoje delovno okolje
- Nastavi zmogljivosti:
Content Capabilities: Read content: ✓ Update content: ✓ Insert content: ✓
User Capabilities: Read user information: ✓- Kopiraj Internal Integration Secret (začne se z
ntn_)
Zahtevano deljenje strani
Notranje integracije imajo dostop samo do strani in baz podatkov, ki so z njimi eksplicitno deljene. Vsako ciljno bazo podatkov deli z integracijo prek menija ”…” > “Connections” > izberi svojo integracijo.
Možnost 2: OAuth 2.0 (javne integracije)
Za integracije, ki pokrivajo več delovnih okolij, uporabi tok OAuth 2.0:
- Registriraj svojo integracijo kot javno integracijo
- Preusmeri uporabnike na:
https://api.notion.com/v1/oauth/authorize?client_id=... - Zamenjaj kodo za žeton za dostop na
/v1/oauth/token
Povezava s Tajo
tajo connectors install notion \ --token $NOTION_TOKENKonfiguracija
Osnovna nastavitev
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: 26Preslikava polj
Preslikaj lastnosti baze podatkov Notion v atribute stikov Brevo:
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: TAGSKončne točke API
Tajo se integrira z naslednjimi končnimi točkami Notion API:
| Končna točka | Metoda | Namen |
|---|---|---|
/v1/databases/{id}/query | POST | Poizvedba po vnosih baze podatkov |
/v1/databases/{id} | GET | Pridobi shemo baze podatkov |
/v1/pages | POST | Ustvari novo stran |
/v1/pages/{id} | GET | Pridobi lastnosti strani |
/v1/pages/{id} | PATCH | Posodobi lastnosti strani |
/v1/blocks/{id}/children | GET | Pridobi podrejene bloke |
/v1/users | GET | Seznam vseh uporabnikov delovnega okolja |
/v1/users/{id} | GET | Pridobi uporabnika |
/v1/search | POST | Iskanje po delovnem okolju |
Primeri kode
Inicializacija konektorja
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 podatkov z 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// }Poizvedba in 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' } ]});Ustvarjanje strani iz événement Brevo
// 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() } } } }); }});Omejitve hitrosti
Notion uveljavi omejitve hitrosti na integracijo:
| Vrsta omejitve | Vrednost |
|---|---|
| Omejitev hitrosti | 3 zahtevki na sekundo na integracijo |
| Omejitev za sunke | Kratki sunki so dovoljeni, nato pride do omejevanja |
| Velikost strani | Največ 100 elementov na paginirani zahtevek |
Paginacija na osnovi kazalca
Notion uporablja paginacijo na osnovi kazalca. Tajo to obravnava samodejno in z iteracijo prek vseh strani z parametrom next_cursor do has_more = false.
Notion vrne 429 Too Many Requests, ko so omejitve hitrosti prekoračene, z glavo Retry-After.
Odpravljanje težav
Pogoste težave
| Težava | Vzrok | Rešitev |
|---|---|---|
| 401 Unauthorized | Neveljaven ali potekel žeton | Obnovi integracijski žeton |
| 403 Forbidden | Stran ni deljena z integracijo | Deli stran/bazo podatkov z integracijo prek Connections |
| 404 Object not found | Napačen ID baze podatkov ali ni deljeno | Potrdi ID baze podatkov in nastavitve deljenja |
| Manjkajo lastnosti | Neujemanje sheme | Znova sinhronizira shemo baze podatkov in posodobi preslikavo polj |
| Prekoračena omejitev hitrosti | Preveč hitrih zahtevkov | Zmanjšaj pogostost sinhronizacije ali velikost paketa |
Način odpravljanja napak
connectors: notion: debug: true log_level: verbose log_api_calls: truePreizkus povezave
tajo connectors test notion# ✓ API authentication successful# ✓ Database access verified# ✓ User list accessible# ✓ Search operational# ✓ Page creation availableNajboljše prakse
- Eksplicitno deli baze podatkov – notranje integracije vidijo samo deljeno vsebino
- Uporabi poizvedbe po bazi podatkov namesto iskanja – poizvedbe so hitrejše in zanesljivejše za znane baze podatkov
- Skrbno preslikaj vrste lastnosti – Notion ima veliko vrst lastnosti; ujemi jih z vrstami atributov Brevo
- Obravnavaj paginacijo – vedno iteriraj skozi vse strani kazalca za popolne podatke
- Sinhronizacija postopoma – za sinhronizacijo samo spremenjenih vnosov uporabi filtre
last_edited_time - Nastavi urnik anketiranja – Notion ne podpira webhookov izvorno; anketiraj v rednih intervalih
Varnost
- Avtentikacija z žetonom prinosnika – integracijske skrivnosti in OAuth žetoni
- Samo HTTPS – vsa komunikacija API šifrirana prek TLS 1.2+
- Obsegani dostop – integracije imajo dostop samo do eksplicitno deljene vsebine
- OAuth 2.0 – varen tok avtorizacije za javne integracije
- Šifrirano shranjevanje – žetoni šifrirani v mirovanju v Tajo
- Izolacija delovnega okolja – vsaka integracija je omejena na eno delovno okolje