https://d226lax1qjow5r.cloudfront.net/blog/blogposts/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/n8n_levelup_1200x600.png

Metas 2021: Aumenta tu vocabulario con Vonage y n8n

Publicado el February 21, 2021

Tiempo de lectura: 13 minutos

Seamos sinceros. Aprender nuevos idiomas es un reto. Paradójicamente, se convierte en un reto aún mayor cuando lo eliges como parte de tu propósito de año nuevo. Si tus aplicaciones para aprender idiomas carecen de vocabulario actual y técnico, este tutorial puede dar en el clavo y transformar tus objetivos en realidad.

Aprenderás a automatizar el envío de vocabulario a través de Vonage. No se requieren conocimientos previos de programación para construir la solución: n8n proporciona un diseñador de flujo de trabajo visual.

El vocabulario más reciente relacionado con la tecnología se obtiene de HackerNews. El sitio LingvaNex API traducirá a tu idioma preferido. Te esperan multitud de idiomas. Un Airtable es tu lienzo en blanco para almacenar tu vocabulario para toda la eternidad.

Empecemos.

Requisitos

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Para construir este práctico mejorador de vocabulario, necesitarás lo siguiente:

  • n8n - Encontrará información detallada sobre la instalación de n8n en la sección Inicio rápido rápida.

  • Account LingvaNex - Crear una cuenta gratuita Account. El plan gratuito incluye hasta 200.000 caracteres cuando generas tu clave API.

  • Account Airtable - Regístrese en gratis.

Completed workflow for automated vocabulary improvementCompleted Workflow for Automated Vocabulary Improvement

Creación del flujo de trabajo del n8n

Este flujo de trabajo n8n automatiza el envío de vocabulario relacionado con la tecnología en mensajes SMS mediante Vonage. Si prefiere descargar el flujo de trabajotendrás que configurarlo rellenando la información que falta. Aparecerá un signo de exclamación en los nodos que requieran modificación.

nodos n8n actúan como agentes de enlace en su flujo de trabajo. Realizan, recuperan y envían datos.

A flujo de trabajo es una colección de nodos conectados sistemáticamente para producir un resultado específico. Se utilizarán los ocho nodos siguientes:

  1. Activador Cron - Inicia el flujo de trabajo diariamente a las 8 AM

  2. Noticias Hacker - Extrae los títulos de las tres noticias diarias más leídas en Hacker News

  3. Función - Selecciona palabras y filtra duplicados de los títulos

  4. LingvaNex - Traduce las palabras extraídas al idioma preferido

  5. Establecer - Filtra los datos relevantes de LingvaNex

  6. Airtable - Guarda vocabulario en Airtable

  7. Función - Elaboración de los mensajes

  8. Vonage - Envía vocabulario a través de la SMS API de Vonage

A medida que añades estos tipos de nodos, puedes renombrarlos para que sus nombres reflejen su papel funcional.

Primeros pasos con el n8n

Para iniciar n8n, abra una ventana de consola y escriba el siguiente comando:

n8n start

A continuación, escriba "o" o ir a la URL visible en la salida de la consola. n8n se abrirá en una ventana del navegador, con un único Inicie en su área de trabajo. La dirección Inicio no será necesario para este flujo de trabajo, pero tampoco puede ser eliminado. Siéntase libre de moverlo a un lado.

También puede probarlo en n8n.cloudque no requiere instalar n8n localmente.

Guardar un flujo de trabajo

Abra el panel lateral izquierdo del n8n haciendo clic en el botón > (expandir). Haga clic en Guardar como y asigne un nombre a su flujo de trabajo. Guardar.

No olvides guardar tu flujo de trabajo con regularidad. Haga clic en Guardar en la sección Flujos de trabajo de este panel para actualizar la copia guardada.

1. Ejecutar el flujo de trabajo todos los días con el nodo Cron Trigger

La página Nodo Cron es útil para programar flujos de trabajo que se ejecuten periódicamente en fechas, horas o intervalos fijos. Funciona de forma similar a cron en sistemas tipo Unix, la utilidad de software macOS Automatorde macOS, o el Programador de tareas.

Añada un nuevo nodo a su flujo de trabajo haciendo clic en el botón + en la parte superior derecha de la Interfaz del editory seleccione el nodo Nodo Cron en la sección Activadores de la lista de nodos.

Haga clic en Añadir hora Cron y seleccione "Cada Día" como Modo. Introduzca "8" como Hora.

Cambie el nombre del encabezado del nodo de "Cron" a "Activador diario" haciendo clic en el nombre, editándolo y haciendo clic en el ✔ (marca de verificación) a la derecha del nombre. Esto finalizará la configuración del nodo y cerrará la ventana de parámetros.

Volver al Activador diario y haga clic en Ejecutar nodo. Así es como debería verse la ventana de parámetros del Cron Trigger:

Cron Trigger Node to Start WorkflowCron Trigger Node to Start Workflow

2. Recuperación de los tres primeros artículos con el nodo Hacker News

Para llenar su flujo de trabajo de vocabulario relacionado con la tecnología, añada la función Noticias Hacker nodo.

Seleccione la opción "Todos" del menú Recurso de la lista desplegable. En la sección Limitar introduzca "3" para limitar la selección a tres artículos del día.

En Campos adicionaleshaga clic en el botón Añadir campo y seleccione "Etiquetas" en la lista desplegable. En el campo Etiquetas recién creado, seleccione "Portada". Esto asegura el aspecto actual de su vocabulario.

Cambia el título del nodo de "Hacker News" a "Obtén los 3 mejores artículos" haciendo clic en el nombre, editándolo y haciendo clic en la ✔ (marca de verificación) a la derecha del nombre.

Volver a la Obtener los 3 mejores artículos y haga clic en Ejecutar nodo. El nodo debería tener este aspecto:

Hacker News Node to Retrieve Articles From Hacker NewsHacker News Node to Retrieve Articles From Hacker News

3. Extracción de palabras de artículos con el nodo de función

Los nodos de función se utilizan para añadir fragmentos personalizados de código JavaScript, transformar datos de otros nodos o implementar funcionalidades personalizadas que n8n no soporta.
Dado que el nodo anterior recuperó algún contenido adicional, necesitará un nodo Función para formatear y extraer sólo los datos necesarios. Añada uno a su flujo de trabajo.

Este nodo de función dividirá los títulos en palabras. También eliminará cualquier formato numérico con la ayuda de Expresiones regulares. Los duplicados se eliminan convirtiendo el array de palabras en un conjunto, y luego de nuevo en un array. Finalmente, transformamos el array en la estructura de datos estructura de datos esperada por n8n.

En la vista Editor de nodos, haga clic en el campo Código JavaScript para expandirlo. Sustituya el contenido existente por el siguiente fragmento:

const words = [];
const regex = /\d/g;
const newItems = [];

// Splits titles into words and removes numbers
// using regular expressions

for(let i=0; i < items.length; i++) {
  let split_titles = [];
  split_titles = items[i].json.title.split(' ');
  for(let j=0; j < split_titles.length; j++) {
    if(regex.test(split_titles[j])) {
      continue;
    } else {
      words.push(split_titles[j]);
    }
  }
}

// Removes all duplicate words by converting the
// array into a set and then back into an array

const uniqueWords = [...new Set(words)];

// Transform the array to the data structure expected
// by n8n

for(let k=0; k < uniqueWords.length; k++) {
  newItems.push({json: { words: uniqueWords[k] }});
}

return newItems;

Cierre esta ventana y volverá automáticamente al editor de nodos.

Cambie el nombre del encabezado del nodo de "Función" a "Extraer palabras" haciendo clic en el nombre, editándolo y haciendo clic en el ✔ (marca de verificación).

Volver a la Extraer palabras y haga clic en Ejecutar nodo.

Function Node to Extract WordsFunction Node to Extract Words

4. Traducir las palabras con el nodo Lingvanex

El nodo LingvaNex traduce las palabras extraídas a un idioma de su elección.

Añádalo a su flujo de trabajo y, a continuación, en la sección Credenciales de la API de LingvaNex seleccione "- Crear nueva -". En el campo Nombre de credenciales introduzca un nombre para sus credenciales, como "LingvaNex", luego proporcione su clave LingvaNex en el campo Clave API y haga clic en el botón Crear Crear. Vaya a la página de su cuenta de página de cuenta de LingvaNex y haz clic en el botón Generar clave para obtenerla.

Añada una expresión haciendo clic en el símbolo del engranaje situado junto al campo Texto y seleccione "Añadir expresión".

Las expresiones son útiles para configurar dinámicamente los parámetros de los nodos. Se representan en formato de texto con marcadores de posición. El código JavaScript se utiliza para permitir el acceso a los datos.

En el Selector de variables seleccione lo siguiente:

Nodos > Extraer palabras > Datos de salida > JSON > palabras

Su expresión en el campo Expresión tendrá este aspecto: {{$node["Extract words"].json["words"]}}

Seleccione el idioma que desea aprender en la lista desplegable del campo "Traducir a" y, a continuación, cambie el nombre del encabezado del nodo de "LingvaNex" a "Traducir" haciendo clic en el nombre.

Vuelva al nodo Traducir y haga clic en Ejecutar nodo.

Lingvanex Node for Translation of the Extracted WordsLingvanex Node for Translation of the Extracted Words

5. Filtrar datos con el nodo Set

El nodo LingvaNex proporciona una salida adicional como cacheUse que no es necesaria para el resto del flujo de trabajo.

Utilizar un Establecer para asegurarse de que sólo la palabra en inglés y la palabra traducida se transmiten a los nodos siguientes. Añádalo a su flujo de trabajo y active la opción Mantener sólo conjunto como activo. Haga clic en el botón Añadir valor y seleccione "Cadena" en la lista desplegable; a continuación, escriba "Palabra en inglés" en el campo "Nombre". Añada una expresión haciendo clic en el símbolo del engranaje situado junto al campo Valor y seleccione "Añadir expresión". Se abrirá la ventana Editar expresión.

En la sección Selector de variables, seleccione lo siguiente: Nodos > Traducir > Datos de salida > JSON > fuente

Su expresión en el campo Expresión debe tener este aspecto: {{$node["Translate"].json["source"]}}

Haga clic en el botón Añadir valor y seleccione "Cadena" en la lista desplegable; a continuación, escriba "Palabra traducida" en el campo "Nombre".

Añada una expresión haciendo clic en el símbolo de engranaje situado junto al campo Valor y seleccione "Añadir expresión".

En la sección Selector de variables, seleccione lo siguiente:

Nodos > Traducir > Datos de salida > JSON > resultado

Tu expresión debería ser así:

{{$node["Translate"].json["result"]}}

Cambie el nombre del encabezado del nodo de "Conjunto" a "Filtrar datos" haciendo clic en el nombre, editándolo y haciendo clic en el ✔ (marca de verificación) a la derecha del nombre. Esto finalizará la configuración del nodo y cerrará la ventana de parámetros.

Volver a los Filtrar datos y haga clic en Ejecutar nodo.

Filter Data Node for Retrieving Vocabulary DataFilter Data Node for Retrieving Vocabulary Data

6. Guardar vocabulario con el nodo Airtable

Para guardar el vocabulario traducido diariamente en su hoja de Airtable, necesitará recuperar sus credenciales de Airtable.

Vaya a su panel de control y haga clic en el icono de su usuario en la parte superior derecha de la ventana. En la lista desplegable, haga clic en el botón Account Cuenta. En la sección API de su Descripción de cuentahaga clic en Generar clave API.

También tendrá que crear una base Airtable y utilizarla para guardar automáticamente el vocabulario aquí. Visite el panel de control de su espacio de trabajo en Airtable y cree una nueva base haciendo clic en el icono + junto al icono "Añadir una base" campo. En la lista desplegable, seleccione "Empezar de cero" para crear una base vacía.

Cambie el nombre de las columnas por defecto a "Palabra en inglés" y "Palabra traducida" seleccionando la opción Cambiar nombre de la lista desplegable situada junto a los campos de columna.

Cambia el tipo de campo a "Texto de una línea" para ambas columnas. Elimine el resto de las columnas preexistentes. El nombre de la tabla puede seguir siendo "Tabla 1".

Así es como debe ser tu base:

Airtable Base for Your Vocabulary BacklogAirtable Base for Your Vocabulary Backlog

Una vez creada la base, tendrás que encontrar su ID de base para poder utilizarla más adelante. Usted será capaz de recuperar su Base ID de API de Airtables de Airtables.

A continuación, añada un nodo Airtable a su flujo de trabajo y, en el campo Credenciales seleccione "- Crear Nuevo -" de la lista desplegable. Al abrirse la ventana Crear nuevas credenciales: "API Airtable", en el campo Nombre de credenciales introduzca el nombre que prefiera, como "Airtable".

Pegue su clave API previamente adquirida para Airtable en el campo Clave API.

Haga clic en el botón Crear (esto le devolverá automáticamente al editor de nodos) y, a continuación, seleccione "Añadir" en la lista desplegable del campo Operación Operación.

En el ID de base introduzca el ID de base que haya adquirido previamente.

Introduzca el nombre de la tabla en el campo Tabla "Tabla 1" si no ha cambiado el nombre en su base Airtable.

Cambie el nombre del encabezado del nodo de "Airtable" a "Guardar las palabras de hoy" haciendo clic en el nombre, editándolo y haciendo clic en el ✔ (marca de verificación) a la derecha del nombre. Esto finalizará la configuración del nodo y cerrará la ventana de parámetros.

Volver a la Guardar palabras de hoy y haga clic en Ejecutar nodo.

Airtable Node for Saving the VocabularyAirtable Node for Saving the Vocabulary

Dirígete a Airtable para encontrar las palabras añadidas en la "Tabla 1":

Airtable After Executing the NodeAirtable After Executing the Node

7. Elaboración del mensaje con el nodo de función

Utilizarás un nodo Function para crear tu mensaje, así que añade uno a tu espacio de trabajo.

Este nodo de función limitará el vocabulario diario (cinco por defecto) y ordenará las palabras a enviar en formato "Palabra inglesa: Palabra traducida". Las añadirá a un array, y luego convertirá el contenido del array en una cadena separada por comas.

En la vista del Editor de nodos, haga clic en el botón Código JavaScript y pegue el siguiente fragmento:

const number_of_words = 5;
const words = [];

// Crafts the words to be sent in en_word : translated_word format
// and adds them to an array

for(let i=0; i < number_of_words; i++) {
  words.push(items[i].json['English word'] + ' : ' + items[i].json['Translated word']);
}

// Takes all the items from the array and converts them into a comma
// separated string

const words_of_the_day = words.join(', ');

return [{json: {words_of_the_day: words_of_the_day}}];

Cierra esta ventana y volverás automáticamente al editor de nodos.

Cambie el nombre del encabezado del nodo de "Función" a "Mensaje de artesanía" haciendo clic en el nombre, editándolo y haciendo clic en el ✔ (marca de verificación) a la derecha del nombre. Esto finalizará la configuración del nodo y cerrará la ventana de parámetros.

Volver al Mensaje y haga clic en Ejecutar nodo.

Function Node for Crafting the MessageFunction Node for Crafting the Message

8. Envío del mensaje SMS con el nodo de Vonage

Por último, necesitarás un Vonage para enviar el vocabulario diario en un mensaje SMS.

Añade un Vonage a su flujo de trabajo, luego en la API de Vonage selecciona "- Crear nuevo -" en la lista desplegable.

Se abrirá la ventana Crear nuevas credenciales: "API de Vonage". Nombra esta API "Vonage" introduciéndolo en el campo Nombre de credenciales y completa los valores de Clave de API y Secreto de API. Haz clic en el botón Crear para guardar y volver automáticamente al editor de nodos.

Introduce "Vonage APIs" en el campo Desde . En el campo Para ingresa el número de móvil para recibir los mensajes de vocabulario diarios. Asegúrese de utilizar el formato E.164 (491234567).

Para personalizar su mensaje, haga clic en el símbolo del engranaje situado junto al campo Mensaje: Mensaje. Seleccione "Añadir expresión" en la lista desplegable. Se abrirá la ventana Editar expresión.

Puede introducir un texto antes de extraer la salida de datos de las palabras diarias, como "Buenos días, aquí tiene sus palabras para hoy:".

En el Selector de variables seleccione lo siguiente:

Nodos > Mensaje > Datos de salida > JSON > words_of_the_day

Tu expresión será parecida a ésta:

Buenos días. Aquí están sus palabras para hoy: {{$node["Craft message"].json["words_of_the_day"]}}

Cierre la ventana Editar expresión cuando esté satisfecho con su mensaje.

Cambia el nombre del encabezado del nodo de "Vonage" a "Enviar SMS" haciendo clic en el nombre, editándolo y haciendo clic en el ✔ (marca de verificación) a la derecha del nombre. Esto finalizará la configuración del nodo y cerrará la ventana de parámetros.

Volver al menú Enviar SMS y haga clic en Ejecutar nodo. Encontrará los resultados finales con su mensaje personalizado.

Vonage Node for Sending Out Daily Vocabulary MessagesVonage Node for Sending Out Daily Vocabulary Messages

Guarde su flujo de trabajo y active Activo a en (verde) en la parte superior derecha del editor de flujos de trabajo.

Bien hecho, ¡tu flujo de trabajo está terminado! Se acabaron las excusas para procrastinar el aprendizaje del idioma de tus sueños. 📖🍎

End Result: Smart Vocabulary Learning Send via Vonage Sms APIEnd Result: Smart Vocabulary Learning Send via Vonage Sms API

Conclusión

En esta combinación perfecta entre Vonage, LingvaNex, Airtable y n8n, has aprendido a crear un flujo de trabajo n8n utilizando ocho nodos diferentes para recibir diariamente vocabulario relacionado con la tecnología extraído de las últimas historias destacadas de Hacker News. Una forma divertida de mejorar tu vocabulario.

Considere la posibilidad de compartir este flujo de trabajo con otras personas y póngase en contacto con la comunidad n8n a través de su foro.

¿Y ahora qué?

¿Este flujo de trabajo te ha abierto el apetito por más automatización y mejora de habilidades? Aquí tienes algunas ideas para saciar tu sed de conocimientos:

Puede sustituir el nodo HackerNews por otras API de noticias o diccionarios. También puede recuperar palabras utilizando una combinación de Solicitud HTTP y Extracto HTML . Así dispondrá de una amplia gama de opciones de vocabulario.

Puede utilizar los datos almacenados en Airtable para crear un panel de vocabulario. Pruebe a utilizar la función Retool o el móvil sin código Bravo Studio sin código. Esto añadirá un aspecto visual útil a tus estudios.

Las opciones para seguir explorando son infinitas. Atrévete.

Compartir:

https://a.storyblok.com/f/270183/400x533/656b9a5465/isabelhildebrand.png
Isabel Hildebrand

Isabel Hildebrand is currently studying law at HWR, Berlin. She is very passionate about automation and likes to work at the intersection of law, productivity, and technology. Feel free to reach out to her on LinkedIn or Twitter.