Conector Notion
Conectați spațiul de lucru Notion la Brevo pentru fluxuri de marketing bazate pe conținut, sincronizarea bazelor de date CRM și notificări automate prin Tajo.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Notion |
| Categorie | Personalizat |
| Complexitate configurare | Ușoară |
| Integrare oficială | Nu |
| Date sincronizate | Baze de date, Pagini, Utilizatori |
| Tip API | REST API |
| Autentificare | Token integrare internă / OAuth 2.0 |
| URL de bază | https://api.notion.com |
| Versiune API | 2022-06-28 (prin antetul Notion-Version) |
Funcționalități
- Sincronizare baze de date - Sincronizați intrările din bazele de date Notion cu contactele și listele Brevo
- Punte CRM - Utilizați bazele de date Notion ca un CRM ușor, sincronizat cu Brevo
- Notificări de conținut - Declanșați campanii Brevo când paginile Notion sunt publicate
- Mapare proprietăți - Mapați proprietățile bazelor de date Notion la atributele de contact Brevo
- Monitorizare pagini - Urmăriți actualizările paginilor și transmiteți-le ca evenimente Brevo
- Sincronizare director utilizatori - Sincronizați membrii spațiului de lucru Notion cu contactele Brevo
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un spațiu de lucru Notion cu acces de administrator
- O integrare internă Notion sau aplicație OAuth
- Pagini de baze de date partajate cu integrarea
- Un cont Brevo cu acces API
- Un cont Tajo cu abonament activ
Autentificare
Notion suportă două metode de autentificare.
Opțiunea 1: Integrare internă (Recomandat pentru un singur spațiu de lucru)
- Accesați notion.so/my-integrations
- Faceți clic pe New integration
- Denumiți-o “Tajo Integration”
- Selectați spațiul de lucru
- Setați capabilitățile:
Content Capabilities: Read content: ✓ Update content: ✓ Insert content: ✓
User Capabilities: Read user information: ✓- Copiați Internal Integration Secret (începe cu
ntn_)
Partajare pagini obligatorie
Integrările interne pot accesa doar paginile și bazele de date partajate explicit cu ele. Partajați fiecare bază de date țintă cu integrarea prin meniul ”…” > “Connections” > selectați integrarea.
Opțiunea 2: OAuth 2.0 (Integrări publice)
Pentru integrări care deservesc mai multe spații de lucru, utilizați fluxul OAuth 2.0:
- Înregistrați integrarea ca integrare publică
- Redirecționați utilizatorii la:
https://api.notion.com/v1/oauth/authorize?client_id=... - Schimbați codul pentru un token de acces la
/v1/oauth/token
Conectare la Tajo
tajo connectors install notion \ --token $NOTION_TOKENConfigurare
Configurare de bază
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: 26Mapare câmpuri
Mapați proprietățile bazelor de date Notion la atributele de contact 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: TAGSPuncte finale API
Tajo se integrează cu următoarele puncte finale ale API-ului Notion:
| Punct final | Metodă | Scop |
|---|---|---|
/v1/databases/{id}/query | POST | Interoghează intrările din baza de date |
/v1/databases/{id} | GET | Recuperează schema bazei de date |
/v1/pages | POST | Creează o pagină nouă |
/v1/pages/{id} | GET | Recuperează proprietățile paginii |
/v1/pages/{id} | PATCH | Actualizează proprietățile paginii |
/v1/blocks/{id}/children | GET | Recuperează elementele copil ale blocului |
/v1/users | GET | Listează toți utilizatorii spațiului de lucru |
/v1/users/{id} | GET | Recuperează un utilizator |
/v1/search | POST | Caută în spațiul de lucru |
Exemple de cod
Inițializare conector
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});Sincronizare bază de date cu 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// }Interogare și filtrare
// 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' } ]});Creare pagină din eveniment 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() } } } }); }});Limite de rată
Notion aplică limite de rată per integrare:
| Tip limită | Valoare |
|---|---|
| Limită de rată | 3 cereri pe secundă per integrare |
| Limită burst | Burst-uri scurte permise, apoi limitare |
| Dimensiune pagină | Maxim 100 elemente per cerere paginată |
Paginare bazată pe cursor
Notion utilizează paginare bazată pe cursor. Tajo gestionează automat acest lucru, iterând prin toate paginile folosind parametrul next_cursor până când has_more returnează false.
Notion returnează 429 Too Many Requests când limitele de rată sunt depășite, cu un antet Retry-After.
Depanare
Probleme frecvente
| Problemă | Cauză | Soluție |
|---|---|---|
| 401 Neautorizat | Token invalid sau expirat | Regenerați tokenul de integrare |
| 403 Interzis | Pagina nu este partajată cu integrarea | Partajați pagina/baza de date cu integrarea prin Connections |
| 404 Obiect negăsit | ID bază de date incorect sau nepartajat | Verificați ID-ul bazei de date și setările de partajare |
| Proprietăți lipsă | Nepotrivire schemă | Resincronizați schema bazei de date și actualizați maparea câmpurilor |
| Limită de rată depășită | Prea multe cereri rapide | Reduceți frecvența sincronizării sau dimensiunea lotului |
Modul de depanare
connectors: notion: debug: true log_level: verbose log_api_calls: trueTestare conexiune
tajo connectors test notion# ✓ API authentication successful# ✓ Database access verified# ✓ User list accessible# ✓ Search operational# ✓ Page creation availableBune practici
- Partajați bazele de date explicit - Integrările interne văd doar conținutul partajat
- Utilizați interogări de baze de date față de căutare - Interogările sunt mai rapide și mai fiabile pentru bazele de date cunoscute
- Mapați tipurile de proprietăți cu atenție - Notion are multe tipuri de proprietăți; potriviți-le cu tipurile de atribute Brevo
- Gestionați paginarea - Iterați întotdeauna prin toate paginile cu cursor pentru date complete
- Sincronizați incremental - Utilizați filtre
last_edited_timepentru a sincroniza doar intrările modificate - Configurați un program de interogare - Notion nu suportă webhook-uri nativ; interogați la intervale regulate
Securitate
- Autentificare cu token Bearer - Secrete de integrare și tokeni OAuth
- Numai HTTPS - Toată comunicarea API criptată prin TLS 1.2+
- Acces cu scop limitat - Integrările accesează doar conținutul partajat explicit
- OAuth 2.0 - Flux de autorizare securizat pentru integrări publice
- Stocare criptată - Tokenii sunt criptați în repaus în Tajo
- Izolare spațiu de lucru - Fiecare integrare este limitată la un singur spațiu de lucru