Conector de Notion

Conecta tu workspace de Notion con Brevo para habilitar flujos de marketing impulsados por contenido, sincronizar bases de datos de CRM y automatizar notificaciones a través de Tajo.

Resumen

PropiedadValor
PlataformaNotion
CategoríaPersonalizada
Complejidad de configuraciónFácil
Integración oficialNo
Datos sincronizadosBases de datos, Páginas, Usuarios
Tipo de APIREST API
AutenticaciónInternal Integration Token / OAuth 2.0
URL basehttps://api.notion.com
Versión de la API2022-06-28 (mediante la cabecera Notion-Version)

Funcionalidades

  • Sincronización de bases de datos - Sincroniza entradas de bases de datos de Notion con contactos y listas de Brevo
  • Puente con CRM - Usa bases de datos de Notion como un CRM ligero sincronizado con Brevo
  • Notificaciones de contenido - Activa campañas de Brevo al publicar páginas de Notion
  • Asignación de propiedades - Asocia propiedades de bases de datos de Notion con atributos de contacto de Brevo
  • Monitorización de páginas - Rastrea actualizaciones de páginas y reenvíalas como eventos de Brevo
  • Sincronización del directorio de usuarios - Sincroniza los miembros del workspace de Notion con contactos de Brevo

Requisitos previos

Antes de empezar, asegúrate de tener:

  1. Un workspace de Notion con acceso de administrador
  2. Una integración interna de Notion o una app OAuth
  3. Páginas de bases de datos compartidas con la integración
  4. Una cuenta de Brevo con acceso a la API
  5. Una cuenta de Tajo con suscripción activa

Autenticación

Notion admite dos métodos de autenticación.

Opción 1: Integración interna (recomendada para un solo workspace)

  1. Ve a notion.so/my-integrations
  2. Haz clic en New integration
  3. Ponle el nombre “Tajo Integration”
  4. Selecciona tu workspace
  5. Define las capacidades:
Content Capabilities:
Read content: ✓
Update content: ✓
Insert content: ✓
User Capabilities:
Read user information: ✓
  1. Copia el Internal Integration Secret (empieza por ntn_)

Es necesario compartir páginas

Las integraciones internas solo pueden acceder a páginas y bases de datos que se hayan compartido explícitamente con ellas. Comparte cada base de datos objetivo con tu integración desde el menú ”…” > “Connections” > selecciona tu integración.

Opción 2: OAuth 2.0 (integraciones públicas)

Para integraciones que sirven a varios workspaces, usa el flujo OAuth 2.0:

  1. Registra tu integración como integración pública
  2. Redirige a los usuarios a: https://api.notion.com/v1/oauth/authorize?client_id=...
  3. Intercambia el código por un access token en /v1/oauth/token

Conectar con Tajo

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

Configuración

Configuración básica

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

Asignación de campos

Asocia las propiedades de bases de datos de Notion con los atributos de contacto de 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

Endpoints de la API

Tajo se integra con los siguientes endpoints de la API de Notion:

EndpointMétodoPropósito
/v1/databases/{id}/queryPOSTConsultar entradas de una base de datos
/v1/databases/{id}GETObtener el esquema de una base de datos
/v1/pagesPOSTCrear una página nueva
/v1/pages/{id}GETObtener propiedades de una página
/v1/pages/{id}PATCHActualizar propiedades de una página
/v1/blocks/{id}/childrenGETObtener los bloques hijos
/v1/usersGETListar todos los usuarios del workspace
/v1/users/{id}GETObtener un usuario
/v1/searchPOSTBuscar en todo el workspace

Ejemplos de código

Inicializar el conector

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

Sincronizar una base de datos con 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
// }

Consultar y filtrar

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

Crear una página desde un evento de 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() } }
}
});
}
});

Límites de velocidad

Notion aplica límites de velocidad por integración:

Tipo de límiteValor
Límite de velocidad3 peticiones por segundo por integración
Límite por ráfagasSe permiten ráfagas cortas; después se aplica throttling
Tamaño de página100 elementos máx. por petición paginada

Paginación basada en cursor

Notion usa paginación basada en cursor. Tajo lo gestiona automáticamente, iterando por todas las páginas con el parámetro next_cursor hasta que has_more devuelve false.

Notion devuelve 429 Too Many Requests cuando se superan los límites de velocidad, acompañado de una cabecera Retry-After.

Resolución de problemas

Problemas habituales

ProblemaCausaSolución
401 UnauthorizedToken no válido o expiradoRegenera el token de la integración
403 ForbiddenPágina no compartida con la integraciónComparte la página/base de datos con la integración desde Connections
404 Object not foundID de base de datos incorrecto o no compartidoVerifica el ID y la configuración de uso compartido
Propiedades que faltanDesajuste de esquemaVuelve a sincronizar el esquema y actualiza la asignación de campos
Límite de velocidad superadoDemasiadas peticiones rápidasReduce la frecuencia o el tamaño del lote

Modo depuración

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

Probar la conexión

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

Buenas prácticas

  1. Comparte las bases de datos explícitamente - Las integraciones internas solo ven contenido compartido
  2. Usa consultas de bases de datos en lugar de búsquedas - Las consultas son más rápidas y fiables para bases de datos conocidas
  3. Asigna los tipos de propiedad con cuidado - Notion tiene muchos tipos de propiedad; haz coincidirlos con los tipos de atributo de Brevo
  4. Gestiona la paginación - Itera siempre por todas las páginas del cursor para obtener los datos completos
  5. Sincroniza de forma incremental - Usa filtros last_edited_time para sincronizar solo las entradas modificadas
  6. Configura una programación de polling - Notion no admite webhooks de forma nativa; realiza polling a intervalos regulares

Seguridad

  • Autenticación por Bearer Token - Secretos de integración y tokens OAuth
  • Solo HTTPS - Toda la comunicación con la API se cifra vía TLS 1.2+
  • Acceso limitado - Las integraciones solo acceden al contenido compartido explícitamente
  • OAuth 2.0 - Flujo de autorización seguro para integraciones públicas
  • Almacenamiento cifrado - Tokens cifrados en reposo en Tajo
  • Aislamiento del workspace - Cada integración se limita a un único workspace

Recursos relacionados

Subscribe to updates

developer-docs

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

auto-detect
Asistente AI

¡Hola! Pregúntame lo que quieras sobre la documentación.