Notion-connector
Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
Notion
Connectorstatus: Gepland
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
Verbind je Notion-workspace met Brevo voor contentgedreven marketingworkflows, CRM-databasesynchronisatie en geautomatiseerde notificaties via Tajo.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Platform | Notion |
| Categorie | Custom |
| Setupcomplexiteit | Eenvoudig |
| Officiële integratie | Nee |
| Gesynchroniseerde data | Databases, Pagina’s, Gebruikers |
| API-type | REST API |
| Authenticatie | Internal Integration Token / OAuth 2.0 |
| Base URL | https://api.notion.com |
| API-versie | 2022-06-28 (via Notion-Version-header) |
Functies
- Databasesynchronisatie - Synchroniseer Notion database-entries naar Brevo-contacten en lijsten
- CRM-bridge - Gebruik Notion-databases als lichtgewicht CRM, gesynchroniseerd met Brevo
- Contentnotificaties - Trigger Brevo-campagnes wanneer Notion-pagina’s worden gepubliceerd
- Property-mapping - Map Notion database-properties naar Brevo-contactattributen
- Pagina-monitoring - Volg pagina-updates en stuur deze door als Brevo-events
- Synchronisatie van gebruikerslijsten - Synchroniseer Notion-workspace-leden naar Brevo-contacten
Vereisten
Voordat je begint, zorg dat je beschikt over:
- Een Notion-workspace met admin-toegang
- Een Notion internal integration of OAuth-app
- Database-pagina’s gedeeld met de integratie
- Een Brevo-account met API-toegang
- Een Tajo-account met een actief abonnement
Authenticatie
Notion ondersteunt twee authenticatiemethoden.
Optie 1: Internal Integration (aanbevolen voor één workspace)
- Ga naar notion.so/my-integrations
- Klik op New integration
- Geef de naam “Tajo Integration”
- Selecteer je workspace
- Stel de capabilities in:
Content Capabilities: Read content: ✓ Update content: ✓ Insert content: ✓
User Capabilities: Read user information: ✓- Kopieer het Internal Integration Secret (begint met
ntn_)
Pagina delen vereist
Internal integrations hebben alleen toegang tot pagina’s en databases die expliciet met hen gedeeld zijn. Deel elke doeldatabase met je integratie via het ”…”-menu > “Connections” > selecteer je integratie.
Optie 2: OAuth 2.0 (publieke integraties)
Voor integraties die meerdere workspaces bedienen, gebruik je de OAuth 2.0-flow:
- Registreer je integratie als publieke integratie
- Verwijs gebruikers door naar:
https://api.notion.com/v1/oauth/authorize?client_id=... - Wissel de code in voor een access token op
/v1/oauth/token
Verbinden met Tajo
tajo connectors install notion \ --token $NOTION_TOKENConfiguratie
Basisinstelling
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: 26Veldmapping
Map Notion database-properties naar Brevo-contactattributen:
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-endpoints
Tajo integreert met de volgende Notion API-endpoints:
| Endpoint | Method | Doel |
|---|---|---|
/v1/databases/{id}/query | POST | Database-entries queryen |
/v1/databases/{id} | GET | Database-schema ophalen |
/v1/pages | POST | Een nieuwe pagina aanmaken |
/v1/pages/{id} | GET | Pagina-properties ophalen |
/v1/pages/{id} | PATCH | Pagina-properties bijwerken |
/v1/blocks/{id}/children | GET | Block-children ophalen |
/v1/users | GET | Alle workspace-gebruikers opvragen |
/v1/users/{id} | GET | Eén gebruiker ophalen |
/v1/search | POST | Zoeken binnen workspace |
Codevoorbeelden
Connector initialiseren
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});Database synchroniseren naar 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// }Queryen en filteren
// 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' } ]});Pagina aanmaken vanuit Brevo-event
// 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() } } } }); }});Rate limits
Notion hanteert rate limits per integratie:
| Limiettype | Waarde |
|---|---|
| Rate limit | 3 requests per seconde per integratie |
| Burst limit | Korte bursts toegestaan, daarna throttling |
| Page size | Max 100 items per gepagineerd request |
Cursor-gebaseerde paginering
Notion gebruikt cursor-gebaseerde paginering. Tajo regelt dit automatisch en doorloopt alle pagina’s via de next_cursor-parameter totdat has_more false retourneert.
Notion retourneert 429 Too Many Requests wanneer rate limits worden overschreden, met een Retry-After-header.
Probleemoplossing
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| 401 Unauthorized | Ongeldig of verlopen token | Regenereer het integration token |
| 403 Forbidden | Pagina niet gedeeld met integratie | Deel pagina/database met integratie via Connections |
| 404 Object not found | Database-ID onjuist of niet gedeeld | Verifieer database-ID en deelinstellingen |
| Properties ontbreken | Schema-mismatch | Synchroniseer database-schema opnieuw en update veldmapping |
| Rate limit overschreden | Te veel snelle requests | Verlaag synchronisatiefrequentie of batchgrootte |
Debugmodus
connectors: notion: debug: true log_level: verbose log_api_calls: trueVerbinding testen
tajo connectors test notion# ✓ API authentication successful# ✓ Database access verified# ✓ User list accessible# ✓ Search operational# ✓ Page creation availableBest practices
- Deel databases expliciet - Internal integrations zien alleen gedeelde content
- Gebruik database-queries boven search - Queries zijn sneller en betrouwbaarder voor bekende databases
- Map property-types zorgvuldig - Notion heeft veel property-types; match ze met Brevo-attribuuttypes
- Behandel paginering - Doorloop altijd alle cursor-pagina’s voor volledige data
- Synchroniseer incrementeel - Gebruik
last_edited_time-filters om alleen gewijzigde entries te synchroniseren - Stel een polling-schema in - Notion ondersteunt webhooks niet native; poll op regelmatige intervallen
Beveiliging
- Bearer Token-authenticatie - Integration secrets en OAuth-tokens
- Alleen HTTPS - Alle API-communicatie versleuteld via TLS 1.2+
- Gescoopte toegang - Integraties hebben alleen toegang tot expliciet gedeelde content
- OAuth 2.0 - Veilige autorisatieflow voor publieke integraties
- Versleutelde opslag - Tokens versleuteld in rust binnen Tajo
- Workspace-isolatie - Elke integratie is gescoped op één workspace