Conectar iOS shortcut con Notion

Hay muchos casos de uso en los que puede ser muy interesante conectar un shortcut de iOS con Notion.

Necesitaba algo para llevar un seguimiento de mis gastos de manera cómoda, y esto es lo que vamos a hablar aquí. Así que si tienes la misma necesidad, o simplemente quieres saber cómo podrías conectar tu Notion con iOS, sigue leyendo, porque a continuación vas a encontrar respuestas.

Hay muchísimas utilidades ahí fuera, aplicaciones y distintas formas de hacer un seguimiento de sus gastos. Incluso hay aplicaciones que lo hacen automáticamente, como Mint en USA, Fintonic en España o incluso algunos bancos ya lo introducen en sus aplicaciones.

Pero yo tenía unas especificaciones que eran imprescindibles:

  • Quería ser yo quien decidiera qué era qué. Si pago algo para arreglar en casa, me gustaría categorizarlo como prefiero y no dejar esa decisión en manos de ninguna aplicación.
  • Quería que algo fuera accesible con un clic desde mi teléfono, ya que es algo que siempre tengo cerca cuando compro cualquier cosa.
  • No quería complicarme haciendo ningún desarrollo súper personalizado con una aplicación o código nativo de iOS que necesitaría implementarse en una infraestructura en la nube para funcionar.

Y con todo esto… llegué al punto en el que crear una integración entre Notion y mi iPhone sería una muy buena opción.

Investigando un poco sobre ello llegué al mundo de los shortcut de iOS.

Así que creé un shortcut de iOS para conectarse con Notion y alimentar una tabla con cada gasto que estaba haciendo. Exactamente lo que necesitaba.

Definición de la herramienta de seguimiento de gastos

Ya tienes una visión general de alto nivel de lo que se trata, pero déjame tratar de definir el producto final aún en mayor profundidad.

La idea final es tener en la pantalla principal de mi iPhone un icono que ejecutará el shortcut. 

El flujo de ejecución será:

  • Solicitud del título del gasto.
  • Aviso solicitando el importe del gasto.
  • Aviso preguntando por la categoría del gasto.
  • En función de la elección de la categoría, se pide especificar la subcategoría.
  • Algunos comentarios adicionales (opcional).
  • Aviso para que el usuario sepa a quién se envió la notificación.

Requisitos

  • Una cuenta de Notion.
  • Una base de datos de Notion para el tracking.
  • Una base de datos de Notion para la relación de categorías y subcategorías.
  • Preparar Notion para ser usado desde un shortcut de iOS.
  • Algunos conocimientos sobre los shortcut de iOS y cómo funcionan. No es obligatorio pero sí muy recomendable.
  • El shortcut real de iOS para realizar el seguimiento de los gastos en Notion.

Empezar con Notion

Si aún no tienes Notion, lo necesitarás, ¡así que anímate!

Notion nos permite utilizarla desde su aplicación móvil o desde su propio sitio web.

Independientemente de la opción que prefieras, tendrás que iniciar sesión.

Ve a https://www.notion.so/ y haz clic en el botón Obtener Notion gratis.

Una vez que lo hayas hecho, simplemente tendrás que registrarte mediante un correo electrónico o usando tu cuenta de Google o Apple.

Personalmente prefiero usar mi correo electrónico manualmente. Si lo haces, tendrás una pantalla como esta.

Por lo tanto, deberás ir a tu bandeja de entrada y pegar ese código de inicio de sesión.

Una vez que la introduzcas y hagas clic en el botón Crear nueva cuenta, serás redirigido a esta otra pantalla.

Introduce los datos solicitados y te pedirán algunas cosas más. Siempre puedes omitirlo si quieres.

El siguiente paso, si te lo saltas, es donde te ofrecen su plan gratuito y también el de pago, que en realidad es una Prueba gratis, y luego, supongo que pagarás después de un tiempo. En mi caso, y probablemente en el tuyo, on el gratuito sobra.

Y cuando haces clic en Take me to Notion… ¡eso es todo! 

Así es como debería quedarte.

Crear las bases de datos en Notion

Como se mencionó anteriormente, necesitaremos 2 bases de datos para que esta herramienta funcione de forma adecuada.

  • La base de datos de tracking

Aquí es donde se almacenarán todos los registros de gastos.

  • La base de datos de relaciones de categorías y subcategorías

Aquí es donde definiremos cuáles son las categorías y subcategorías que necesitaremos para etiquetar nuestros gastos. El shortcut de iOS accederá a estos datos para mostrar al usuario solo las subcategorías que pertenecen a la categoría previamente seleccionada.

Cómo crear una nueva base de datos en Notion

  • Crea una nueva página en Notion donde quieras tener la base de datos. Bastará con hacer clic en la opción Agregar una página en el menú que Notion ofrece a la izquierda.
  • Elige un título para tu nueva página.
  • Tendrás que añadir una base de datos con vista de tabla. Simplemente haz clic en el botón + para añadir un nuevo bloque y luego selecciona esa opción de vista de tabla.
  • Selecciona Nueva base de datos ya que no tenemos ninguna otra fuente de datos.
  • Elige un nombre para la nueva tabla y empieza a crear las columnas que necesites con su correspondiente tipo de datos.

Qué cara tienen nuestras dos bases de datos

Nada mejor que ver un ejemplo base que además puedes duplicar para adaptarlo a tus necesidades.

Con esa información de la base de datos, el shortcut de iOS funcionará perfectamente, mostrando las categorías Categoría1 , Categoría2 y Categoría3 , y dependiendo de la categoría seleccionada, mostrará las subcategorías:

  • Subcategoría1 , Subcategoría4 , Subcategoría5 si Categoría1 se seleccionó anteriormente
  • Subcategoría2 si Categoría2 fue la elegida.
  • Subcategoría3 si se seleccionó Categoría3 .

Preparar Notion para ser usado desde un shortcut de iOS

Ahora que tiene tus tablas creadas en Notion, debes configurarlas para que sean accesibles desde el shortcut de iOS que crearemos seguidamente.

Para hacer eso, necesitaremos crear lo que se llama una Integración y vincularla a las tablas que creamos anteriormente.

¡Vamos a por ello!

Para crear una nueva integración, debes ir a https://www.notion.so/my-integrations y hacer clic en el enlace Nueva integración .

Completa el formulario con el nombre que prefieras y deja sus opciones como se muestra en la imagen a continuación.

  • Haz clic en el botón Enviar y… ¡tendrás tu nueva Integración creada! El punto realmente importante es obtener el token de integración interna . Así que ten esa información a mano.
  • Tendrás que hacer el siguiente proceso dos veces. Uno para la tabla de tracking y otro para las categorías y subcategorías.
  • Ve a la página de la base de datos en Notion.
  • Haz clic en el enlace Compartir (esquina superior derecha). Y allí, deberías poder añadir la nueva integración que acabas de crear.
  • ¡Haz clic en el botón Invitar y listo! Ahora tienes tu base de datos de Notion lista para ser accesible desde el exterior.

¿Qué es la API de Notion?

La API de Notion es la interfaz de programación de aplicaciones (API) expuesta al público para que cualquier persona pueda añadir, actualizar o eliminar información sin la necesidad de estar usando la aplicación Notion directamente.

Cualquier API está compuesta por un grupo de lo que se denominan end points.

Cada end point realiza una acción diferente.

Si quieres añadir nuevos registros en una base de datos en Notion desde, por ejemplo, un shortcut de iOS, puedes hacerlo simplemente llamando desde el shortcut de iOS al end point expuesto en la API de Notion para cumplir con ese cometido.

Cómo utilizar la API de Notion

Usar la API de Notion no es diferente a usar cualquier otra API pública.

No encontrarás un mejor lugar para conocer el API que su propia documentación. Aquí es donde explican cómo trabajar con bases de datos.

Mi herramienta favorita para jugar con las API es Postman. Es una herramienta potente, pero al mismo tiempo lo suficientemente fácil como para probar rápidamente cualquier API manualmente. ¡Dale una oportunidad e instálalo!

Las API de Notion ofrece un end point para incluir nuevos registros en una tabla, y eso es exactamente lo que necesitamos.

Para usar ese end point necesitarás:

  • Poder realizar una solicitud HTTP al end point https://api.notion.com/v1/pages usando el verbo POST.
  • Incluir el token de integración interna como cabecera para autenticarse.
  • Incluir un payload especial para informar sobre qué datos queremos añadir.

En definitiva todo lo que se refleja en el cURL que Notion tiene como ejemplo en su documentación:

¿Qué necesitarás cambiar?

  • Ese $NOTION_API_KEY que es el token de integración interna que generamos antes.
  • El database_id, que puedes encontrar siguiendo estos sencillos pasos .
  • Dentro del objeto de properties deberás especificar cuáles son sus columnas, cuál es su tipo de datos y cuál es el valor que quieres añadir.
    • Tienes todas las opciones que ofrece Notion en esta página .

Usar el API de Notion desde el shortcut de iOS

Llegado este punto, ya sabes cómo añadir información a la base de datos de Notion desde el exterior utilizando la API de Notion.

Ahora solo necesitas saber cómo hacerlo desde un shortcut de iOS.

De hecho, no necesitas saber en detalle cómo funcionan los shortcut de iOS, pero familiarizarte con ellos y tener un poco de conocimiento, te ayudará mucho a adaptar el shortcut que compartiré a continuación a tus necesidades.

No soy un experto en absoluto en el mundo de los shortcut de iOS, pero solo leyendo un poco aquí y allá y jugando un poco por mi cuenta, más o menos pude hacerme con lo que necesitaba. 

Dicho eso, estoy seguro de que hay enfoques mucho mejores para hacer lo que hice, así que no me culpes si te parece que otra forma sería mucho mejor. Solo voy a reunir lo que aprendí y exponerlo aquí en caso de que pueda ser de utilidad.

Estos son los puntos que encontré importantes:

Cómo crear o actualizar un shortcut de iOS

Para mí fue mucho más fácil trabajar con los shortcut desde mi mac en lugar de hacerlo desde el iPhone. Es solo una cuestión de la interfaz de usuario y de lo cómodo que me siento. Te recomiendo que hagas lo mismo si estás pensando en crear uno.

Sin embargo, también puede crear o actualizar un shortcut mediante tu iPhone. Simplemente ve a la aplicación de shortcut, selecciona el ícono +, elige un nombre… y empieza a crear lo que necesites.

¿Cuáles son las acciones de shortcut de iOS más importantes?

Hay miles de acciones que puedes elegir, y para ser honesto, te diré que no conozco la mayoría de ellas, pero nuevamente, te voy a decir cuáles fueron las que necesitaba entender sí o sí, y cuáles vi que eran súper utiles.

  • Dictionaries : Almacenan información en un formato clave-valor. Podría ser una buena idea tener toda la información sensible, o simplemente toda la información que sabemos de antemano que necesitaremos a lo largo del proceso en un diccionario.
    • Get dictionary from: para crear un nuevo diccionario a partir de alguna otra salida en los pasos anteriores.
  • Set variable statement: declara una nueva variable y almacena en ella cualquier resultado de un paso anterior.
  • Repeat with each item in: Brinda la posibilidad de hacer bucles, iterando sobre una colección.
  • If : Lo necesitarás cada vez que tengas que evaluar y hacer algo si se da la condición ‘x’ y hacer otra cosa si la condición ‘y’.
  • Lists: Otra estructura de datos para almacenar listas de valores.
  • Choose from: Permite al usuario elegir de entre una lista de opciones.
  • Ask for XXX with YYY: Muestra un diálogo al usuario pidiéndole que introduzca algún valor.
  • Text: Otra estructura de datos para almacenar el texto que necesitamos. Podríamos usar esto, por ejemplo, para escribir el cuerpo de la solicitud que usaremos cuando llamemos a la API de Notion.
  • URL: Permite declarar una url para ser utilizada desde otros lugares.
  • Get contents of: esta es la acción principal para comunicarse con una API.
  • Send Message: lo usé para notificar a mi mujer cada vez que usaba el shortcut y para recibir una notificación cuando ella lo usaba. Simplemente envía un SMS a quien tú indiques con el mensaje que quieras.
  • Show: Muestra en pantalla cualquier contenido que le indiques. Podría ser un mensaje específico, el valor de una variable o el resultado de una instrucción anterior. Para mí esta fue una acción súper útil ya que me permitió depurar el shortcut mientras lo desarrollaba.

Cómo hacer cosas útiles con un shortcut de iOS

Veamos algunas funciones que creo que son interesantes y relativamente necesarias para crear el shortcut.

Cómo añadir valores a una variable

Cuando usas las acciones por primera vez, las variables se auto-completarán de forma predeterminada con el resultado del paso anterior.

Sin embargo, a veces no necesitas o no quieres eso, y deseas especificar cualquier otro valor.

Si es así, primero deberás hacer clic en la opción Clear.

Y luego, al hacer clic en Input, puede seleccionar cualquier variable que ya haya definido o usar Select magic variable para seleccionar manualmente de donde quieras tomar el valor.

Cuando estés en esa vista Select Magic Variable, la vista del shortcut será un poco diferente, con algunas variables nuevas que puede seleccionar. 

En la siguiente captura de pantalla, puedes ver el chosen_item , la subcategory elegida , los comments y otros comments.

Cómo añadir elementos a una lista en un shortcut de iOS

Aunque las opciones de las listas no son demasiadas dentro de iOS, podríamos hacer algunos trucos para añadir elementos a una lista usando alguna otra variable, añadiendo a ella lo que sea necesario.

Imagina que estamos en bucle y cada iteración en ese bucle tenemos un valor diferente para la variable category_name

Usando la siguiente declaración.

Añadimos el valor de la variable category_name a la otra variable llamada list_category_names.

Cuando termine el bucle, tendremos en la variable list_category_names todos los valores.

Pero esa variable no es un valor de Lista como tal. Para convertirla en una Lista real, simplemente puede hacer lo siguiente.

Y tendrás tu Lista lista para lo que necesites.

Cómo llamar a un end point

Necesitamos llamar de alguna manera a la API de Notion. Así es como podemos hacerlo:

Primero, declara una URL usando la acción URL.

Luego, usa la instrucción Get contents of, especificando el Método (GET, POST, PUT…), las cabeceras y el cuerpo de la solicitud que necesitas para comunicarte con el API de Notion.

Cómo usar la respuesta que obtenemos cuando llamamos a un end point

Después de tener la respuesta, probablemente necesites realizar alguna acción con ella. En ese caso, puedes usar la estructura del Dictionary para almacenar el contenido de la respuesta y luego hacer lo que necesites con él.

Este sería un ejemplo de caso de uso:

Puedes almacenar en una nueva variable el valor que contiene la key results del diccionario. Esa nueva variable se llamará all_items .

Con la acción Repeat with each item in

Vas a iterar sobre todos esos elementos, y por cada elemento podrías hacer…

Para obtener el valor que contenga la key properties.Category.select.name .

Guardarlo en una nueva variable llamada category_name.

Y luego preguntar si ese valor category_name está contenido en la lista list_category_names

De ser así, no haremos nada, y de lo contrario, añadiremos ese valor a la lista.

De esta forma, tendrás en el valor de la variable list_category_names todos los nombres de las categorías sin contener valores duplicados.

Shortcut de iOS para realizar un seguimiento de gastos en Notion

Probablemente esta sea la sección que más estabas buscando… ¡Aquí la tienes!

Aquí tienes el enlace al shortcut para que lo puedas descargar en tu iPhone y comenzar a usarlo.

Recuerda que tendrás que cambiar algunas cosas para que el shortcut funcione correctamente.

En este punto es donde haber leído y comprendido el resto del artículo te ayudará.

De todas formas, estas son las cosas que deberías cambiar:

  • Identifica dónde está el Diccionario y cambia lo siguiente.
    • La key api_key. Configúralo con tu token de integración interna que obtuviste cuando creaste la integración en Notion.
    • La key tracking_db . Configúralo con el ID de tu base de datos de tracking.
    • La key categories_db . Configúralo con el id de tu base de datos de categorías.
  • Identifica la última condición If. Ese bloque se utiliza para la notificación.
    • Una opción es que tu caso de uso sea diferente y simplemente no necesites/quieras notificar. En este caso, simplemente elimina el bloque.
    • Por otro lado si lo quieres así
      • Cambia el [something_you_want] para poner el Nombre del dispositivo que tiene la persona a quien quieras notificar. En mi caso, el iPhone de mi esposa se llama iPhone de Diana, así que solo puse Diana.
      • Incluya los Destinatarios a los que desea que se envíe el mensaje en cada caso.
      • Cambia el texto a mostrar para que sea un mensaje preciso según tu caso de uso.