Ir al contenido

Notion

Los nodos Notion conectan tus workflows con Notion a través de su API REST. Con ellos podés automatizar tu workspace: crear una página (fila) en una base de datos cuando entra un lead, consultar una base de datos con filtros, agregar contenido a una página o dejar un comentario.

Hay seis nodos:

NodoOperaciónMétodo HTTP
Notion: Crear página (notionCreatePage)Crea una página (fila de una base de datos o subpágina)POST /pages
Notion: Leer página (notionGetPage)Lee una página por su idGET /pages/{id}
Notion: Actualizar página (notionUpdatePage)Actualiza propiedades / archivaPATCH /pages/{id}
Notion: Consultar base de datos (notionQueryDatabase)Consulta con filtros y ordenPOST /databases/{id}/query
Notion: Agregar contenido (notionAppendBlocks)Agrega bloques a una páginaPATCH /blocks/{id}/children
Notion: Comentar página (notionAddComment)Agrega un comentarioPOST /comments

Los nodos usan una credencial de tipo Notion. Creala en Credenciales → Agregar → Notion con este campo:

CampoDescripción
Token de integraciónEl Internal Integration Secret, desde notion.so/my-integrations. Nunca se muestra en logs.

La autenticación es Bearer con el token de la integración. Podés probar la credencial con el botón Test, que llama a GET /users/me.

En Notion las propiedades de una página son objetos tipados según el tipo de columna (título, texto, select, fecha, número, relación…). Por eso los campos properties, filter y sorts se pasan como JSON con el formato de la API de Notion. Por ejemplo, el título:

{ "Name": { "title": [ { "text": { "content": "Nuevo lead" } } ] } }
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Notion
database_idtextoNo*id de la base de datos padre (la página es una fila)
parent_page_idtextoNo*id de la página padre (si no es una base de datos)
propertiesJSONSíPropiedades de la página (formato Notion)
childrenJSONNoBloques de contenido inicial

*Necesitás uno de database_id o parent_page_id. Salida: la página creada, con su id y url.

ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Notion
page_idtextoSíid de la página

Notion: Actualizar página (notionUpdatePage)

Sección titulada «Notion: Actualizar página (notionUpdatePage)»
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Notion
page_idtextoSíid de la página
propertiesJSONNoPropiedades a actualizar (formato Notion)
archivedtextoNotrue para archivar, false para restaurar

Notion: Consultar base de datos (notionQueryDatabase)

Sección titulada «Notion: Consultar base de datos (notionQueryDatabase)»
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Notion
database_idtextoSíid de la base de datos
filterJSONNoFiltro (formato Notion)
sortsJSONNoOrden (array, formato Notion)
page_sizenúmeroNoMáximo de resultados (1-100)

Salida: el array de páginas (results) que cumplen la consulta.

Notion: Agregar contenido (notionAppendBlocks)

Sección titulada «Notion: Agregar contenido (notionAppendBlocks)»
ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Notion
block_idtextoSíid de la página o bloque padre
texttextoNoTexto simple (crea un párrafo)
childrenJSONNoBloques de contenido (formato Notion)

Pasá children (bloques a medida) o text (párrafo simple). Si das ambos, mandan los bloques.

ParámetroTipoRequeridoDescripción
credentials_idcredencialSíCredencial de Notion
page_idtextoSíid de la página
texttextoSíTexto del comentario

Crear una fila en una base de datos de leads a partir de un formulario:

  • Nodo: Notion: Crear página
  • database_id: 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d
  • properties:
{
"Name": { "title": [ { "text": { "content": "{{data.cliente}}" } } ] },
"Email": { "email": "{{data.email}}" },
"Estado":{ "select": { "name": "Nuevo" } }
}

Salida:

{
"id": "8b9c0d1e-2f3a-4b5c-6d7e-8f9a0b1c2d3e",
"url": "https://www.notion.so/8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e",
"object": "page"
}

Cada nodo clasifica los errores para que el motor sepa si tiene sentido reintentar:

SituaciónReintentableQué hacer
Validación (400)NoNotion devuelve el motivo (ej. propiedad inexistente o tipo incorrecto). Corregí el JSON.
No encontrado (404)NoLa página/base de datos no existe o no está compartida con la integración. Compartila y revisá el id.
Autenticación (401/403)NoToken inválido o sin permiso. Revisá la credencial.
Conflicto (409)SíConflicto temporal de Notion; se reintenta automáticamente.
Servidor (500)SíError temporal de Notion; se reintenta.
Límite de tasa (429)SíSe respeta el Retry-After de Notion (≈3 req/s) y se reintenta.
Red / TimeoutSíProblema pasajero; se reintenta automáticamente.