Notion-kobling
Koble Notion-arbeidsområdet ditt til Brevo for innholdsdrevne markedsføringsarbeidsflyter, CRM-databasesynkronisering og automatiske varslinger gjennom Tajo.
Oversikt
| Egenskap | Verdi |
|---|---|
| Plattform | Notion |
| Kategori | Custom |
| Oppsettskompleksitet | Enkel |
| Offisiell integrasjon | Nei |
| Synkroniserte data | Databaser, sider, brukere |
| API-type | REST API |
| Autentisering | Internt integrasjonstoken / OAuth 2.0 |
| Base URL | https://api.notion.com |
| API-versjon | 2022-06-28 (via Notion-Version-header) |
Funksjoner
- Databasesynkronisering - Synkroniser Notion-databaseoppføringer til Brevo-kontakter og -lister
- CRM-bro - Bruk Notion-databaser som en lettvekts-CRM, synkronisert til Brevo
- Innholdsvarsler - Utløs Brevo-kampanjer når Notion-sider publiseres
- Egenskapsmapping - Mapp Notion-databaseegenskaper til Brevo-kontaktattributter
- Sideovervåking - Spor sideoppdateringer og videresend som Brevo-hendelser
- Synkronisering av brukerkatalog - Synkroniser Notion-arbeidsområdemedlemmer til Brevo-kontakter
Forutsetninger
Før du begynner, sørg for at du har:
- Et Notion-arbeidsområde med administratortilgang
- En Notion intern integrasjon eller OAuth-app
- Databasesider delt med integrasjonen
- En Brevo-konto med API-tilgang
- En Tajo-konto med aktivt abonnement
Autentisering
Notion støtter to autentiseringsmetoder.
Alternativ 1: Intern integrasjon (anbefalt for ett enkelt arbeidsområde)
- Gå til notion.so/my-integrations
- Klikk New integration
- Gi den navnet “Tajo Integration”
- Velg arbeidsområdet ditt
- Sett rettigheter:
Content Capabilities: Read content: ✓ Update content: ✓ Insert content: ✓
User Capabilities: Read user information: ✓- Kopier Internal Integration Secret (begynner med
ntn_)
Sidedeling kreves
Interne integrasjoner kan kun få tilgang til sider og databaser som er eksplisitt delt med dem. Del hver måldatabase med integrasjonen din via menyen ”…” > “Connections” > velg integrasjonen.
Alternativ 2: OAuth 2.0 (offentlige integrasjoner)
For integrasjoner som betjener flere arbeidsområder, bruk OAuth 2.0-flyten:
- Registrer integrasjonen din som en offentlig integrasjon
- Omdiriger brukere til:
https://api.notion.com/v1/oauth/authorize?client_id=... - Bytt koden mot et tilgangstoken på
/v1/oauth/token
Koble til Tajo
tajo connectors install notion \ --token $NOTION_TOKENKonfigurasjon
Grunnleggende oppsett
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: 26Feltmapping
Mapp Notion-databaseegenskaper til Brevo-kontaktattributter:
field_mapping: # Notion-egenskap -> Brevo-attributt 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-endepunkter
Tajo integrerer med følgende Notion API-endepunkter:
| Endepunkt | Metode | Formål |
|---|---|---|
/v1/databases/{id}/query | POST | Spør databaseoppføringer |
/v1/databases/{id} | GET | Hent databaseskjema |
/v1/pages | POST | Opprett en ny side |
/v1/pages/{id} | GET | Hent sideegenskaper |
/v1/pages/{id} | PATCH | Oppdater sideegenskaper |
/v1/blocks/{id}/children | GET | Hent blokkbarn |
/v1/users | GET | List alle arbeidsområdebrukere |
/v1/users/{id} | GET | Hent en bruker |
/v1/search | POST | Søk på tvers av arbeidsområdet |
Kodeeksempler
Initialiser kobling
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});Synkroniser database til Brevo
// Synkroniser en Notion-database til en Brevo-listeawait 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// }Spør og filtrer
// Spør Notion-database med filtreconst results = await tajo.connectors.query('notion', { databaseId: 'abc123def456', filter: { property: 'Status', select: { equals: 'Active' } }, sorts: [ { property: 'Last Contact', direction: 'descending' } ]});Opprett side fra Brevo-hendelse
// Opprett en Notion-side når en Brevo-kontakt når en milepæltajo.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() } } } }); }});Ratebegrensninger
Notion håndhever ratebegrensninger per integrasjon:
| Begrensningstype | Verdi |
|---|---|
| Ratebegrensning | 3 forespørsler per sekund per integrasjon |
| Burstgrense | Korte bursts tillatt, deretter struping |
| Sidestørrelse | Maks 100 elementer per paginert forespørsel |
Markørbasert paginering
Notion bruker markørbasert paginering. Tajo håndterer dette automatisk og itererer gjennom alle sider ved hjelp av next_cursor-parameteren til has_more returnerer false.
Notion returnerer 429 Too Many Requests når ratebegrensninger overskrides, med en Retry-After-header.
Feilsøking
Vanlige problemer
| Problem | Årsak | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig eller utløpt token | Regenerer integrasjonstoken |
| 403 Forbidden | Siden er ikke delt med integrasjonen | Del side/database med integrasjonen via Connections |
| 404 Object not found | Database-ID feil eller ikke delt | Verifiser database-ID og delingsinnstillinger |
| Manglende egenskaper | Skjema-ulikhet | Synkroniser databaseskjemaet på nytt og oppdater feltmappingen |
| Ratebegrensning overskredet | For mange raske forespørsler | Reduser synkroniseringsfrekvens eller batchstørrelse |
Feilsøkingsmodus
connectors: notion: debug: true log_level: verbose log_api_calls: trueTest tilkobling
tajo connectors test notion# ✓ API-autentisering vellykket# ✓ Databasetilgang bekreftet# ✓ Brukerliste tilgjengelig# ✓ Søk operativt# ✓ Sideopprettelse tilgjengeligBeste praksis
- Del databaser eksplisitt - Interne integrasjoner ser kun delt innhold
- Bruk databaseforespørsler i stedet for søk - Spørringer er raskere og mer pålitelige for kjente databaser
- Mapp egenskapstyper nøye - Notion har mange egenskapstyper; matche dem mot Brevo-attributtyper
- Håndter paginering - Iterer alltid gjennom alle markørsider for komplette data
- Synkroniser inkrementelt - Bruk
last_edited_time-filtre for å synkronisere kun endrede oppføringer - Sett opp en polling-plan - Notion støtter ikke webhooks nativt; poll med jevne intervaller
Sikkerhet
- Bearer Token-autentisering - Integrasjonshemmeligheter og OAuth-tokens
- Kun HTTPS - All API-kommunikasjon kryptert via TLS 1.2+
- Avgrenset tilgang - Integrasjoner får kun tilgang til eksplisitt delt innhold
- OAuth 2.0 - Sikker autorisasjonsflyt for offentlige integrasjoner
- Kryptert lagring - Tokens kryptert i hvilemodus i Tajo
- Arbeidsområdeisolasjon - Hver integrasjon er avgrenset til ett enkelt arbeidsområde