Notion-koppling
Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.
Illustration · exempeldata
Exempel på synkronisering
Källa
Notion
Kopplingens status: Planerad
Mål
Ditt andra verktyg
Kopplingens status: Eget verktyg
Fältmappning
| Källfält | Målfält | Exempelvärde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Utkast
- Granska en post
- Godkänn den här versionen
Status gäller varje enskild koppling och garanterar inte att den här synkroniseringen är klar. Fälten är illustrativa. Kontrollera det faktiska schemat och behörigheterna innan synkronisering körs.
Anslut din Notion-arbetsyta till Brevo för innehållsdrivna marknadsföringsarbetsflöden, CRM-databassynkronisering och automatiserade notifieringar via Tajo.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Notion |
| Kategori | Anpassad |
| Installationskomplexitet | Enkel |
| Officiell integration | Nej |
| Data som synkas | Databaser, sidor, användare |
| API-typ | REST API |
| Autentisering | Intern integrationstoken / OAuth 2.0 |
| Bas-URL | https://api.notion.com |
| API-version | 2022-06-28 (via Notion-Version-header) |
Funktioner
- Databassynkronisering - Synka Notion-databasposter till Brevo-kontakter och listor
- CRM-brygga - Använd Notion-databaser som ett enkelt CRM, synkat till Brevo
- Innehållsnotifieringar - Utlös Brevo-kampanjer när Notion-sidor publiceras
- Egenskapsmappning - Mappa Notion-databasegenskaper till Brevo-kontaktattribut
- Sidövervakning - Spåra siduppdateringar och vidarebefordra som Brevo-händelser
- Synk av användarkatalog - Synka medlemmar i Notion-arbetsytan till Brevo-kontakter
Förutsättningar
Innan du börjar, se till att du har:
- En Notion-arbetsyta med adminåtkomst
- En intern Notion-integration eller OAuth-app
- Databassidor delade med integrationen
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med en aktiv prenumeration
Autentisering
Notion stöder två autentiseringsmetoder.
Alternativ 1: Intern integration (rekommenderas för enskild arbetsyta)
- Gå till notion.so/my-integrations
- Klicka på New integration
- Namnge den “Tajo Integration”
- Välj din arbetsyta
- Sätt funktioner:
Content Capabilities: Read content: ✓ Update content: ✓ Insert content: ✓
User Capabilities: Read user information: ✓- Kopiera Internal Integration Secret (börjar med
ntn_)
Siddelning krävs
Interna integrationer kan endast komma åt sidor och databaser som uttryckligen har delats med dem. Dela varje måldatabas med din integration via ”…”-menyn > “Connections” > välj din integration.
Alternativ 2: OAuth 2.0 (publika integrationer)
För integrationer som betjänar flera arbetsytor, använd OAuth 2.0-flödet:
- Registrera din integration som en publik integration
- Omdirigera användare till:
https://api.notion.com/v1/oauth/authorize?client_id=... - Byt ut koden mot en åtkomsttoken på
/v1/oauth/token
Anslutning till Tajo
tajo connectors install notion \ --token $NOTION_TOKENKonfiguration
Grundinställning
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: 26Fältmappning
Mappa Notion-databasegenskaper till Brevo-kontaktattribut:
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 integrerar med följande Notion API-endpoints:
| Endpoint | Metod | Syfte |
|---|---|---|
/v1/databases/{id}/query | POST | Fråga databasposter |
/v1/databases/{id} | GET | Hämta databasschema |
/v1/pages | POST | Skapa en ny sida |
/v1/pages/{id} | GET | Hämta sidegenskaper |
/v1/pages/{id} | PATCH | Uppdatera sidegenskaper |
/v1/blocks/{id}/children | GET | Hämta blockunderordnade |
/v1/users | GET | Lista alla användare i arbetsytan |
/v1/users/{id} | GET | Hämta en användare |
/v1/search | POST | Sök i hela arbetsytan |
Kodexempel
Initiera kopplingen
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});Synka databas till 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// }Fråga och filtrera
// 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' } ]});Skapa sida från Brevo-händelse
// 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() } } } }); }});Hastighetsbegränsningar
Notion tillämpar hastighetsbegränsningar per integration:
| Gränstyp | Värde |
|---|---|
| Hastighetsbegränsning | 3 förfrågningar per sekund per integration |
| Burst-gräns | Korta toppar tillåtna, sedan strypning |
| Sidstorlek | Max 100 objekt per sidindelad förfrågan |
Markörbaserad sidindelning
Notion använder markörbaserad sidindelning. Tajo hanterar detta automatiskt och itererar genom alla sidor med parametern next_cursor tills has_more returnerar false.
Notion returnerar 429 Too Many Requests när hastighetsbegränsningar överskrids, med en Retry-After-header.
Felsökning
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltig eller utgången token | Återgenerera integrationstoken |
| 403 Forbidden | Sida inte delad med integrationen | Dela sida/databas med integration via Connections |
| 404 Object not found | Databas-ID felaktigt eller ej delat | Verifiera databas-ID och delningsinställningar |
| Egenskaper saknas | Schema-mismatch | Synka databasschema igen och uppdatera fältmappning |
| Hastighetsbegränsning överskriden | För många snabba förfrågningar | Minska synkfrekvens eller batchstorlek |
Felsökningsläge
connectors: notion: debug: true log_level: verbose log_api_calls: trueTesta anslutning
tajo connectors test notion# ✓ API authentication successful# ✓ Database access verified# ✓ User list accessible# ✓ Search operational# ✓ Page creation availableBästa praxis
- Dela databaser uttryckligen - Interna integrationer ser endast delat innehåll
- Använd databasfrågor framför sökning - Frågor är snabbare och mer pålitliga för kända databaser
- Mappa egenskapstyper noggrant - Notion har många egenskapstyper; matcha dem till Brevo-attributtyper
- Hantera sidindelning - Iterera alltid genom alla markörsidor för komplett data
- Synka inkrementellt - Använd
last_edited_time-filter för att endast synka ändrade poster - Sätt upp ett pollningschema - Notion stöder inte webhooks nativt; polla med jämna intervall
Säkerhet
- Bearer-tokenautentisering - Integrationshemligheter och OAuth-tokens
- Endast HTTPS - All API-kommunikation krypterad via TLS 1.2+
- Scoped åtkomst - Integrationer har endast åtkomst till uttryckligen delat innehåll
- OAuth 2.0 - Säkert auktoriseringsflöde för publika integrationer
- Krypterad lagring - Tokens krypterade i vila i Tajo
- Arbetsyteisolering - Varje integration är scopad till en enskild arbetsyta