Konektor Notion

Połącz swój workspace Notion z Brevo, aby realizować przepływy marketingowe oparte na treści, synchronizować bazy danych CRM i wysyłać automatyczne powiadomienia przez Tajo.

Przegląd

WłaściwośćWartość
PlatformaNotion
KategoriaNiestandardowa
Poziom konfiguracjiŁatwy
Integracja oficjalnaNie
Synchronizowane daneBazy danych, Strony, Użytkownicy
Typ APIREST API
UwierzytelnianieInternal Integration Token / OAuth 2.0
Bazowy URLhttps://api.notion.com
Wersja API2022-06-28 (przez nagłówek Notion-Version)

Funkcje

  • Synchronizacja baz danych - Synchronizuj wpisy baz danych Notion z kontaktami i listami Brevo
  • Mostek CRM - Używaj baz danych Notion jako lekkiego CRM, synchronizowanego z Brevo
  • Powiadomienia o treści - Wyzwalaj kampanie Brevo, gdy strony Notion są publikowane
  • Mapowanie właściwości - Mapuj właściwości baz danych Notion na atrybuty kontaktów Brevo
  • Monitorowanie stron - Śledź aktualizacje stron i przekazuj je jako zdarzenia Brevo
  • Synchronizacja katalogu użytkowników - Synchronizuj członków workspace Notion z kontaktami Brevo

Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

  1. Workspace Notion z dostępem administratora
  2. Wewnętrzną integrację Notion lub aplikację OAuth
  3. Strony baz danych udostępnione integracji
  4. Konto Brevo z dostępem do API
  5. Konto Tajo z aktywną subskrypcją

Uwierzytelnianie

Notion obsługuje dwie metody uwierzytelniania.

Opcja 1: Integracja wewnętrzna (zalecane dla pojedynczego workspace)

  1. Przejdź do notion.so/my-integrations
  2. Kliknij New integration
  3. Nazwij ją „Tajo Integration”
  4. Wybierz swój workspace
  5. Ustaw możliwości:
Content Capabilities:
Read content: ✓
Update content: ✓
Insert content: ✓
User Capabilities:
Read user information: ✓
  1. Skopiuj Internal Integration Secret (zaczyna się od ntn_)

Wymagane udostępnianie stron

Integracje wewnętrzne mogą uzyskiwać dostęp tylko do stron i baz danych jawnie udostępnionych integracji. Udostępnij każdą docelową bazę danych swojej integracji przez menu ”…” > “Connections” > wybierz swoją integrację.

Opcja 2: OAuth 2.0 (integracje publiczne)

Dla integracji obsługujących wiele workspace’ów użyj przepływu OAuth 2.0:

  1. Zarejestruj swoją integrację jako integrację publiczną
  2. Przekieruj użytkowników do: https://api.notion.com/v1/oauth/authorize?client_id=...
  3. Wymień kod na token dostępu pod adresem /v1/oauth/token

Połączenie z Tajo

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

Konfiguracja

Podstawowa konfiguracja

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

Mapowanie pól

Mapuj właściwości baz danych Notion na atrybuty kontaktów Brevo:

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

Endpointy API

Tajo integruje się z następującymi endpointami Notion API:

EndpointMetodaCel
/v1/databases/{id}/queryPOSTOdpytaj wpisy bazy danych
/v1/databases/{id}GETPobierz schemat bazy danych
/v1/pagesPOSTUtwórz nową stronę
/v1/pages/{id}GETPobierz właściwości strony
/v1/pages/{id}PATCHAktualizuj właściwości strony
/v1/blocks/{id}/childrenGETPobierz dzieci bloku
/v1/usersGETLista wszystkich użytkowników workspace
/v1/users/{id}GETPobierz użytkownika
/v1/searchPOSTWyszukaj w workspace

Przykłady kodu

Inicjalizacja konektora

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

Synchronizuj bazę danych z 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
// }

Odpytuj i filtruj

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

Utwórz stronę ze zdarzenia Brevo

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

Limity API

Notion stosuje limity szybkości na integrację:

Typ limituWartość
Limit szybkości3 żądania na sekundę na integrację
Limit burstKrótkie bursts dozwolone, potem ograniczanie
Rozmiar stronyMaks. 100 elementów na stronicowane żądanie

Paginacja oparta na kursorze

Notion używa paginacji opartej na kursorze. Tajo obsługuje to automatycznie, iterując przez wszystkie strony używając parametru next_cursor do czasu, gdy has_more zwróci false.

Notion zwraca 429 Too Many Requests po przekroczeniu limitów szybkości, z nagłówkiem Retry-After.

Rozwiązywanie problemów

Typowe problemy

ProblemPrzyczynaRozwiązanie
401 UnauthorizedNieprawidłowy lub wygasły tokenWygeneruj ponownie token integracji
403 ForbiddenStrona nie udostępniona integracjiUdostępnij stronę/bazę danych integracji przez Connections
404 Object not foundNieprawidłowe ID bazy danych lub nie udostępnionaZweryfikuj ID bazy danych i ustawienia udostępniania
Brakujące właściwościNiezgodność schematuPonownie zsynchronizuj schemat bazy danych i zaktualizuj mapowanie pól
Przekroczono limitZa dużo szybkich żądańZmniejsz częstotliwość synchronizacji lub rozmiar partii

Tryb debug

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

Test połączenia

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

Najlepsze praktyki

  1. Udostępniaj bazy danych jawnie - Integracje wewnętrzne widzą tylko udostępnioną zawartość
  2. Używaj zapytań do baz danych zamiast wyszukiwania - Zapytania są szybsze i bardziej niezawodne dla znanych baz danych
  3. Ostrożnie mapuj typy właściwości - Notion ma wiele typów właściwości; dopasuj je do typów atrybutów Brevo
  4. Obsługuj paginację - Zawsze iteruj przez wszystkie strony kursora dla kompletnych danych
  5. Synchronizuj przyrostowo - Używaj filtrów last_edited_time, aby synchronizować tylko zmienione wpisy
  6. Skonfiguruj harmonogram odpytywania - Notion nie obsługuje webhooków natywnie; odpytuj w regularnych odstępach czasu

Bezpieczeństwo

  • Uwierzytelnianie tokenem Bearer - Sekrety integracji i tokeny OAuth
  • Tylko HTTPS - Cała komunikacja API zaszyfrowana przez TLS 1.2+
  • Ograniczony dostęp - Integracje mają dostęp tylko do jawnie udostępnionej zawartości
  • OAuth 2.0 - Bezpieczny przepływ autoryzacji dla integracji publicznych
  • Szyfrowane przechowywanie - Tokeny szyfrowane w spoczynku w Tajo
  • Izolacja workspace - Każda integracja jest ograniczona do jednego workspace

Powiązane zasoby

Subscribe to updates

developer-docs

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

auto-detect
Asystent AI

Cześć! Zapytaj mnie o dokumentację.