Notion Connector

Forbind dit Notion-workspace med Brevo til indholdsdrevne marketing-workflows, CRM-databasesynkronisering og automatiserede notifikationer via Tajo.

Oversigt

EgenskabVærdi
PlatformNotion
KategoriBrugerdefineret
OpsætningskompleksitetLet
Officiel integrationNej
Synkroniserede dataDatabaser, sider, brugere
API-typeREST API
AutentifikationInternal Integration Token / OAuth 2.0
Base-URLhttps://api.notion.com
API-version2022-06-28 (via Notion-Version-header)

Funktioner

  • Databasesynkronisering - Synkronisér Notion-databaseposter til Brevo-kontakter og -lister
  • CRM-bro - Brug Notion-databaser som et let CRM, synkroniseret med Brevo
  • Indholdsnotifikationer - Udløs Brevo-kampagner, når Notion-sider offentliggøres
  • Property-mapping - Kortlæg Notion-databaseegenskaber til Brevo-kontaktattributter
  • Sideovervågning - Spor sideopdateringer, og videresend dem som Brevo-hændelser
  • Synkronisering af brugerkatalog - Synkronisér medlemmer af Notion-workspace til Brevo-kontakter

Forudsætninger

Før du begynder, skal du sikre dig, at du har:

  1. Et Notion-workspace med admin-adgang
  2. En intern Notion-integration eller en OAuth-app
  3. Databasesider delt med integrationen
  4. En Brevo-konto med API-adgang
  5. En Tajo-konto med aktivt abonnement

Autentifikation

Notion understøtter to autentifikationsmetoder.

Mulighed 1: Intern integration (anbefalet til et enkelt workspace)

  1. Gå til notion.so/my-integrations
  2. Klik på New integration
  3. Navngiv den “Tajo Integration”
  4. Vælg dit workspace
  5. Indstil capabilities:
Content Capabilities:
Read content: ✓
Update content: ✓
Insert content: ✓
User Capabilities:
Read user information: ✓
  1. Kopiér Internal Integration Secret (starter med ntn_)

Sidedeling påkrævet

Interne integrationer kan kun tilgå sider og databaser, der er eksplicit delt med dem. Del hver måldatabase med din integration via menuen ”…” > “Connections” > vælg din integration.

Mulighed 2: OAuth 2.0 (offentlige integrationer)

Til integrationer, der betjener flere workspaces, skal du bruge OAuth 2.0-flowet:

  1. Registrér din integration som en offentlig integration
  2. Omdirigér brugere til: https://api.notion.com/v1/oauth/authorize?client_id=...
  3. Byt koden til et access token på /v1/oauth/token

Forbind til Tajo

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

Konfiguration

Grundlæggende opsætning

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

Feltmapping

Kortlæg Notion-databaseegenskaber til Brevo-kontaktattributter:

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 integrerer med følgende Notion API-endpoints:

EndpointMetodeFormål
/v1/databases/{id}/queryPOSTForespørg databaseposter
/v1/databases/{id}GETHent databaseskema
/v1/pagesPOSTOpret en ny side
/v1/pages/{id}GETHent sideegenskaber
/v1/pages/{id}PATCHOpdatér sideegenskaber
/v1/blocks/{id}/childrenGETHent blok-children
/v1/usersGETVis alle workspace-brugere
/v1/users/{id}GETHent en bruger
/v1/searchPOSTSøg på tværs af workspace

Kodeeksempler

Initialisér connector

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
});

Synkronisér database til 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
// }

Forespørg og filtrér

// 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' }
]
});

Opret side fra 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() } }
}
});
}
});

Rate limits

Notion håndhæver rate limits pr. integration:

GrænsetypeVærdi
Rate limit3 anmodninger pr. sekund pr. integration
Burst-grænseKorte bursts tilladt, derefter throttles
SidestørrelseMaks. 100 elementer pr. pagineret anmodning

Cursor-baseret paginering

Notion bruger cursor-baseret paginering. Tajo håndterer dette automatisk ved at itérere gennem alle sider med parameteren next_cursor, indtil has_more returnerer false.

Notion returnerer 429 Too Many Requests, når rate limits overskrides, med en Retry-After-header.

Fejlfinding

Almindelige problemer

ProblemÅrsagLøsning
401 UnauthorizedUgyldigt eller udløbet tokenRegenerér integrations-token
403 ForbiddenSide ikke delt med integrationDel side/database med integration via Connections
404 Object not foundDatabase-ID forkert eller ikke deltVerificér database-ID og delingsindstillinger
Manglende egenskaberSkemamismatchGenssynkronisér databaseskema og opdatér feltmapping
Rate limit overskredetFor mange hurtige anmodningerReducér synkroniseringsfrekvens eller batch-størrelse

Debug-tilstand

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

Testforbindelse

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

Bedste praksis

  1. Del databaser eksplicit - Interne integrationer ser kun delt indhold
  2. Brug databaseforespørgsler frem for søgning - Forespørgsler er hurtigere og mere pålidelige for kendte databaser
  3. Kortlæg egenskabstyper omhyggeligt - Notion har mange egenskabstyper; match dem til Brevo-attributtyper
  4. Håndtér paginering - Itérér altid gennem alle cursor-sider for at få komplette data
  5. Synkronisér inkrementelt - Brug last_edited_time-filtre for kun at synkronisere ændrede poster
  6. Opsæt en poll-tidsplan - Notion understøtter ikke webhooks nativt; poll med jævne mellemrum

Sikkerhed

  • Bearer-token-autentifikation - Integrationshemmeligheder og OAuth-tokens
  • Kun HTTPS - Al API-kommunikation krypteres via TLS 1.2+
  • Scoped adgang - Integrationer tilgår kun eksplicit delt indhold
  • OAuth 2.0 - Sikkert autorisationsflow til offentlige integrationer
  • Krypteret opbevaring - Tokens krypteres i hvile i Tajo
  • Workspace-isolation - Hver integration er scoped til et enkelt workspace

Relaterede ressourcer

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hej! Spørg mig om dokumentationen.