Notion-koppling

Anslut din Notion-arbetsyta till Brevo för innehållsdrivna marknadsföringsarbetsflöden, CRM-databassynkronisering och automatiserade notifieringar via Tajo.

Översikt

EgenskapVärde
PlattformNotion
KategoriAnpassad
InstallationskomplexitetEnkel
Officiell integrationNej
Data som synkasDatabaser, sidor, användare
API-typREST API
AutentiseringIntern integrationstoken / OAuth 2.0
Bas-URLhttps://api.notion.com
API-version2022-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:

  1. En Notion-arbetsyta med adminåtkomst
  2. En intern Notion-integration eller OAuth-app
  3. Databassidor delade med integrationen
  4. Ett Brevo-konto med API-åtkomst
  5. Ett Tajo-konto med en aktiv prenumeration

Autentisering

Notion stöder två autentiseringsmetoder.

Alternativ 1: Intern integration (rekommenderas för enskild arbetsyta)

  1. Gå till notion.so/my-integrations
  2. Klicka på New integration
  3. Namnge den “Tajo Integration”
  4. Välj din arbetsyta
  5. Sätt funktioner:
Content Capabilities:
Read content: ✓
Update content: ✓
Insert content: ✓
User Capabilities:
Read user information: ✓
  1. 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:

  1. Registrera din integration som en publik integration
  2. Omdirigera användare till: https://api.notion.com/v1/oauth/authorize?client_id=...
  3. Byt ut koden mot en åtkomsttoken på /v1/oauth/token

Anslutning till Tajo

Terminal window
tajo connectors install notion \
--token $NOTION_TOKEN

Konfiguration

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: 26

Fä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: TAGS

API-endpoints

Tajo integrerar med följande Notion API-endpoints:

EndpointMetodSyfte
/v1/databases/{id}/queryPOSTFråga databasposter
/v1/databases/{id}GETHämta databasschema
/v1/pagesPOSTSkapa en ny sida
/v1/pages/{id}GETHämta sidegenskaper
/v1/pages/{id}PATCHUppdatera sidegenskaper
/v1/blocks/{id}/childrenGETHämta blockunderordnade
/v1/usersGETLista alla användare i arbetsytan
/v1/users/{id}GETHämta en användare
/v1/searchPOSTSö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 list
await 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 filters
const 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 milestone
tajo.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änstypVärde
Hastighetsbegränsning3 förfrågningar per sekund per integration
Burst-gränsKorta toppar tillåtna, sedan strypning
SidstorlekMax 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

ProblemOrsakLösning
401 UnauthorizedOgiltig eller utgången tokenÅtergenerera integrationstoken
403 ForbiddenSida inte delad med integrationenDela sida/databas med integration via Connections
404 Object not foundDatabas-ID felaktigt eller ej delatVerifiera databas-ID och delningsinställningar
Egenskaper saknasSchema-mismatchSynka databasschema igen och uppdatera fältmappning
Hastighetsbegränsning överskridenFör många snabba förfrågningarMinska synkfrekvens eller batchstorlek

Felsökningsläge

connectors:
notion:
debug: true
log_level: verbose
log_api_calls: true

Testa anslutning

Terminal window
tajo connectors test notion
# ✓ API authentication successful
# ✓ Database access verified
# ✓ User list accessible
# ✓ Search operational
# ✓ Page creation available

Bästa praxis

  1. Dela databaser uttryckligen - Interna integrationer ser endast delat innehåll
  2. Använd databasfrågor framför sökning - Frågor är snabbare och mer pålitliga för kända databaser
  3. Mappa egenskapstyper noggrant - Notion har många egenskapstyper; matcha dem till Brevo-attributtyper
  4. Hantera sidindelning - Iterera alltid genom alla markörsidor för komplett data
  5. Synka inkrementellt - Använd last_edited_time-filter för att endast synka ändrade poster
  6. 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

Relaterade resurser

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-assistent

Hej! Fråga mig om dokumentationen.