Conector Notion
Starea conectorului: Planificat Încă neconstruit. Tajo nu rulează astăzi acest conector.
Ilustrație · date de exemplu
Exemplu de sincronizare
Sursă
Notion
Starea conectorului: Planificat
Destinație
Celălalt instrument al tău
Starea conectorului: Instrument personalizat
Maparea câmpurilor
| Câmp sursă | Câmp destinație | Valoare exemplu |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Ciornă
- Verifică o înregistrare
- Aprobă această versiune
Stările se referă la fiecare conector și nu garantează că această sincronizare este pregătită. Câmpurile sunt ilustrative. Verifică schema și permisiunile reale înainte de sincronizare.
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