La integración del acortador de URLs con Notion pasó de Beta a Activa el 4 de junio de 2026. Si usas Notion como centro de campañas, Elido lee las URLs de cualquier base de datos que elijas, crea enlaces cortos con tu marca en tu dominio, los escribe de vuelta en la tabla y detecta los cambios en el destino. Un clic con OAuth, sin pegar secretos, y el mapa de campos es configurable por base de datos.
Este artículo cubre el paso de conexión OAuth con los permisos, la estructura de seis columnas y el flujo de edición bidireccional con resolución de conflictos. Si ya leíste el anterior tutorial de enlaces cortos con Notion, este es el análisis en profundidad.
OAuth con un clic: qué pasa realmente cuando presionas Conectar
Los flujos anteriores basados en pegar tokens te pedían que generaras un token interno de integración de Notion, lo pegaras y luego compartieras manualmente cada base de datos con la integración. Eso ya no existe. El nuevo flujo son tres clics: Conectar en Elido, elegir el espacio de trabajo y las bases de datos en la pantalla de consentimiento de Notion, listo. El intercambio OAuth sigue el estándar de la documentación de autenticación de la API de Notion, con PKCE en el intercambio del código de autorización.
Los permisos que concedes son deliberadamente limitados:
- read_content - leer las propiedades Destination, Tags y Title en las bases de datos seleccionadas.
- insert_content - crear nuevas filas cuando le pidas a Elido que genere un enlace desde una fuente externa (un Zap, un webhook, un CSV).
- update_content - escribir de vuelta las propiedades Short URL, Clicks, QR y Last Synced.
Elido nunca solicita lectura a nivel de todo el espacio de trabajo ni acceso a páginas que no marcaste. Notion también lo hace cumplir en el servidor: una consulta contra una base de datos fuera del permiso devuelve un 403. La referencia de la API de Notion para operaciones de bases de datos cubre los verbos que usa la integración.
Cuando completas el consentimiento, tu navegador llega a api.elido.app/v1/oauth/notion/callback con el código de autorización. api-core intercambia el código por un token de acceso, cifra el token con la clave KMS del espacio de trabajo (según ADR-0036) y lo almacena en integration_credentials. El token en texto plano nunca toca el disco ni los logs. También se crea una entrada en el registro de auditoría para que un administrador pueda ver quién conectó qué espacio de trabajo de Notion y cuándo.
El botón de conexión está en la pestaña Integraciones de cada espacio de trabajo, igual que cualquier otro proveedor del catálogo de integraciones. La página de integración con Notion tiene una captura de pantalla de la pantalla de consentimiento. Los permisos se pueden revocar desde Ajustes de Notion, panel de Conexiones - revocar allí lanza un webhook que elimina el token del lado de Elido en 60 segundos.
Dos modos: vincular o crear
En el modo de vinculación, apuntas a Elido hacia una base de datos existente con una propiedad URL. Elido añade solo las columnas que necesita sin renombrar nada. En el modo de creación, Elido crea una nueva base de datos "Elido Links" dentro de la página que elijas. La mayoría de los equipos prefieren el modo de vinculación porque su tabla de campañas ya existe con datos de varios trimestres. En ambos casos, el esquema es idéntico.
Mapa de campos: las seis columnas y por qué están así
Este es el diseño de columnas que usa la integración. Los nombres son los predeterminados y se pueden renombrar por base de datos en Ajustes, Notion, Mapa de campos.
| Columna | Tipo en Notion | Dirección | Notas |
|---|---|---|---|
| Short URL | URL | Elido escribe | Solo lectura desde el lado del usuario; editarla no tiene efecto. |
| Destination | URL | Notion escribe | El destino al que apunta el enlace corto. Editable. |
| Tags | Selección múltiple | Bidireccional | Las etiquetas se fusionan por unión de conjuntos en caso de conflicto. |
| Clicks | Número | Elido escribe | Se actualiza cada 5 minutos. Solo lectura. |
| QR | Archivos | Elido escribe | Un PNG de 1024px del código QR para la URL corta. |
| Last Synced | Fecha | Elido escribe | Marca de tiempo UTC de la sincronización más reciente. |
Algunas decisiones merecen una explicación.
Clicks no es en tiempo real de forma intencionada. Notion no tiene ningún primitivo de streaming, y hacer una llamada por cada clic agotaría el límite de velocidad. Cinco minutos se ajusta a la frescura que necesita la mayoría de los equipos de operaciones. Para tiempo real, lanza un webhook en eventos de clic de enlace y reenvíalo a tu propio panel. Notion es la vista de campaña; el webhook es el flujo de datos continuo.
QR es una propiedad de tipo Archivos, no URL. Notion no renderiza URLs de imágenes externas en tablas, pero sí muestra los archivos adjuntos como miniaturas. Elido sube el PNG en la primera sincronización y lo vuelve a subir solo si cambia la URL corta. Consulta la página de la funcionalidad de códigos QR y la guía de QR GS1.
Tags es bidireccional con unión de conjuntos. La única columna en la que ambos lados escriben. Etiqueta una fila con "launch-2026" en Notion, Elido tiene "winter-promo" de un Zap, en la siguiente sincronización ambas etiquetas existen en ambos lados. Las eliminaciones se propagan. El registro de auditoría registra cada cambio.
Para parámetros UTM, la guía de plantillas UTM asocia una plantilla a una carpeta para que cada enlace herede el utm_source correcto. La columna Destination se mantiene limpia y Elido añade los parámetros en el momento de la resolución del clic a través de las reglas de enlaces inteligentes.
El flujo de edición bidireccional: quién gana cuando Notion y Elido no coinciden
Esta es la parte que más le importa a los equipos, porque las herramientas de sincronización tienen un historial de sobrescrituras silenciosas. Este es el contrato.
Un worker dentro de api-core consulta cada base de datos conectada cada cinco minutos en busca de cambios desde la última marca de agua last_edited_time. Ante un cambio de propiedad, carga el mapa de campos y determina la propiedad. Las reglas son fijas:
- Notion posee: Destination, Tags (lado de escritura), Title.
- Elido posee: Short URL, Clicks, QR, Last Synced.
- Compartido: Tags (lado de lectura; ambos lados ven el conjunto fusionado).
Si un campo propiedad de Notion cambió en Notion, Elido actualiza el estado interno y emite un evento integration.notion.sync. Si un campo propiedad de Elido cambió (un incremento en el contador de clics), Elido lo escribe de vuelta en la siguiente sincronización.
El caso interesante es una colisión. Supongamos que cambias Destination en Notion a las 14:02:10 y un Zap escribe una nueva Destination en Elido a las 14:02:30, en la misma ventana de cinco minutos. Notion posee Destination, así que gana Notion. Elido descarta la escritura del Zap, publica un comentario en la fila ("Conflicto en Destination a las 14:02:30, se conservó el valor de Notion, ver registro de auditoría") y emite un evento de conflicto suscribible a través de webhooks. El Zap escucha y decide si reintenta o lanza una alerta.
Sin sobrescrituras silenciosas en ningún lado. Cada escritura queda registrada. Cada conflicto recibe un comentario en la fila. Para un registro permanente, envía el flujo de auditoría a tu almacén de datos mediante la guía de exportación a ClickHouse o accede directamente a la API GraphQL.
Cuándo un cambio de destino NO debe propagarse
A veces editas un destino como borrador. Dos patrones ayudan en este caso.
Propiedad de estado como protección. Añade una selección llamada "Sync" con los valores Draft, Live, Paused. La integración solo sincroniza filas donde Sync = Live. Trabaja en Draft, cámbialo a Live y el siguiente ciclo lo recoge. La mayoría de los equipos de marketing terminan usando esto.
Pausar toda la base de datos. Ajustes, Notion, pausar por base de datos. Útil durante una migración o ediciones masivas.
Tutorial de configuración: de cero a la primera fila sincronizada en 4 minutos
- Conectar Notion. Ajustes del espacio de trabajo, Integraciones, Notion, Conectar. Elige el espacio de trabajo, marca las bases de datos, Permitir.
- Elegir una base de datos. Ajustes, Notion, "Añadir base de datos". El desplegable lista todas las bases de datos que autorizaste. Elige una.
- Mapear campos. Confirma Destination, Title y el resto. ¿Faltan propiedades? Elido ofrece crearlas.
- Elegir un dominio. Elige un dominio con tu marca para los enlaces cortos. ¿Sin dominio personalizado todavía? Elige el predeterminado; la migración es un clic más adelante.
- Guardar y rellenar. Elido lee cada fila, genera un enlace corto para aquellas con Destination pero sin Short URL, y lo escribe de vuelta. Los Short URLs existentes se dejan tal cual.
El tiempo real es de unos 4 minutos para 200 filas. Los rellenos más grandes topan con el límite de tres peticiones por segundo de Notion en espacios de trabajo gratuitos. Una base de datos de 5.000 filas tarda unos 30 minutos en rellenarse; el worker procesa en lotes y reanuda solo si se le limita la velocidad.
Cuándo usar esto frente a Zapier o la API directamente
Existen tres caminos, no mutuamente excluyentes.
La integración nativa es la opción predeterminada correcta si Notion es donde ocurre el trabajo. OAuth, resolución de conflictos, registro de auditoría, mapa de campos, sin código.
Un Zap es adecuado para flujos de trabajo de varios pasos ("cuando se añade una fila Y llega una reacción de Slack, entonces crear un enlace"). Para el mapeo directo de fila a enlace, la integración nativa es más rápida y económica. Consulta el artículo sobre automatización con Zapier.
La API REST es adecuada si estás construyendo un flujo de trabajo personalizado sobre Elido. Para los desarrolladores que crean integraciones de producto, el código fuente bajo services/api-core/internal/integrations/notion/ es lo suficientemente pequeño como para leerlo en una sola sesión.
En comparación con Bitly o Rebrandly: ninguno tiene una integración nativa con Notion en el momento de escribir esto. Ambos requieren Zapier o un script personalizado. Consulta la página vs Bitly para ver las diferencias y la página de precios para saber qué planes incluyen bases de datos de Notion ilimitadas.
Solución de problemas: los cuatro errores que surgieron en Beta
Durante las ocho semanas de Beta, aparecieron cuatro categorías de problemas. Todos están ahora resueltos en el código, pero es útil saber qué buscar.
"Base de datos no encontrada" tras renombrar un espacio de trabajo. Si un administrador de Notion renombra el espacio de trabajo, el ID del espacio de trabajo permanece estable, pero los metadatos en caché quedan obsoletos en nuestro lado hasta una hora. Solución: pulsa "Forzar resincronización" en Ajustes, Notion. El TTL de la caché está configurado en 15 minutos en producción, por lo que esto es principalmente un artefacto de la Beta.
Límite de velocidad durante un relleno grande. El límite por integración de Notion es de tres peticiones por segundo. Una base de datos de 5.000 filas lo supera con fuerza durante el relleno inicial. El worker aplica un retroceso exponencial (250ms, 500ms, 1s, 2s, máximo 8s) y reanuda. Verás "Throttled by Notion, resuming" en el registro de actividad; esto es normal.
Tipo de propiedad incorrecto. El error más común en Beta. Un usuario eligió una columna de Notion de tipo "Texto" para Destination en lugar de "URL". El validador del mapa de campos ahora detecta esto al guardar y se niega a continuar. Si ves "Destination debe ser una propiedad URL", cambia primero el tipo de columna en Notion.
Usuario en múltiples espacios de trabajo con bases de datos compartidas. Si la misma persona pertenece a dos espacios de trabajo de Notion y ambos quieren conectar Elido, cada espacio de trabajo necesita su propio permiso OAuth. El token es por espacio de trabajo, no por usuario. El flujo de conexión maneja esto correctamente; solo hay que esperar hacer clic en Conectar dos veces.
Para cualquier cosa que no esté en esta lista, la página de contacto va directamente al equipo de integraciones. Los problemas se detectan allí más rápido que en el soporte general.
Lo que viene a continuación
Dos ampliaciones en la hoja de ruta. Una receta "de formulario Notion a enlace corto" para que el envío de un formulario genere un enlace rastreado. Y sincronización bidireccional en una propiedad Workspace para que un enlace pueda seguir cuando mueves una fila entre bases de datos. Ambas previstas para el Q3; las anotaremos en el changelog.
Para medir el impacto, el manual introductorio de analítica de enlaces cortos explica qué métricas importan realmente y cómo configurar las filas del panel de Notion para que respondan las preguntas correctas.
Preguntas frecuentes
¿Qué permisos solicita la integración con Notion?
Elido solicita insert_content, update_content y read_content sobre las páginas o bases de datos que selecciones en el paso de consentimiento OAuth. Eso es suficiente para añadir nuevas filas, escribir de vuelta las URLs cortas y los contadores de clics, y leer los cambios en el destino. Elido nunca solicita acceso a todo el espacio de trabajo, y el permiso se limita a lo que marcaste en la interfaz de consentimiento de Notion.
¿Puedo editar la URL de destino dentro de Notion y que Elido la siga?
Sí. Un observador de campo comprueba cada cinco minutos si hay cambios en la propiedad Destination. Si la URL cambia, Elido actualiza el destino del enlace en api-core, escribe una nueva fila en el registro de auditoría y lanza un webhook para que los sistemas aguas abajo lo sepan. La URL corta en sí nunca cambia, por lo que los códigos QR existentes y los materiales impresos siguen funcionando.
¿Cómo funciona la resolución de conflictos cuando ambos lados editan al mismo tiempo?
Notion es la fuente de verdad para Destination, Tags y Title. Elido es la fuente de verdad para Short URL, Clicks, QR y Last Synced. Si una propiedad colisiona durante una ventana de sincronización, gana el lado que posee el campo y el otro recibe un comentario en la fila explicando lo ocurrido. No hay sobrescrituras silenciosas.
¿Funciona la integración con el plan gratuito de Notion?
Sí, con dos salvedades. Los espacios de trabajo gratuitos de Notion tienen un límite de tres peticiones por segundo, por lo que las bases de datos muy grandes (más de 5.000 filas) se sincronizan en lotes de 100 con una pequeña pausa. Además, la integración necesita que un administrador del espacio de trabajo de Notion apruebe el permiso OAuth la primera vez. Después, cualquier persona con derechos de edición en la base de datos puede activar una resincronización manual.
¿Qué ocurre si desconecto la integración?
El token OAuth se revoca y la copia cifrada en api-core se elimina en 60 segundos. Las filas existentes permanecen en la base de datos con sus URLs cortas intactas, pero Clicks y Last Synced dejan de actualizarse. Si reconectas más adelante, la integración retoma donde lo dejó y rellena los contadores de clics acumulados durante la desconexión.
Prueba Elido
Pega una URL, obtén un enlace corto
Sin registro. El enlace vive 30 días. Crea una cuenta para conservarlo.
Gratis, sin registro · 2 por día