Full Transcript
https://www.youtube.com/watch?v=8A8PyJeQhlo
[00:00] Tienes que aprender N8N.
[00:02] Ahora, N8N se ha convertido en una de las herramientas más potentes para automatizar procesos sin depender de soluciones cerradas o demasiado costosas.
[00:10] O sea, lo puedes correr hasta gratis en tu máquina.
[00:12] La idea clave de N8N es simple.
[00:14] En vez de perder tiempo en tareas repetitivas, tú lo que haces es que creas flujos que trabajan para ti.
[00:19] Y si has visto mis videos, tú sabrás que yo estoy utilizando N8N para mantenerme al día con las noticias del mundo tech.
[00:24] Y no tienes idea de todo el tiempo que me ha ahorrado.
[00:28] Solamente esa automatización.
[00:30] Vas a ahorrar tiempo con tareas operativas, como por ejemplo mover archivos, mover datos, enviar correos, crear reportes, conectar aplicaciones, leer noticias.
[00:37] También puedes crear soluciones reales para clientes o también para equipos sin que tengas que programar todo desde cero.
[00:42] Y por último, ganas una habilidad sumamente demandada por las empresas, porque ahora todas quieren hacer más con menos.
[00:48] Además, N8N tiene algo que es sumamente importante y es que este es flexible.
[00:51] Puedes empezar con la lógica visual de los nodos y cuando necesites más control puedes agregar JavaScript, puedes agregar endpoints de una API o puedes enchular tu automatización creando estructuras más avanzadas.
[01:00] Si hoy sientes que haces
[01:01] más avanzadas.
[01:03] Si hoy sientes que haces muchas tareas manuales o quieres crear automatizaciones profesionales ya,
[01:05] aprender N8N es una ventaja competitiva.
[01:08] Y en este curso voy a enseñarte todo desde cero.
[01:11] Los fundamentos, integraciones comunes, manipulación de datos, APIs para desarrolladores, qué son los loop, el famoso human in the loop, gestión de errores, depuración.
[01:20] Y este curso lo vamos a terminar con un hermoso proyecto final listo para producción.
[01:24] Así que quédate hasta el final porque esto se va a poner bueno.
[01:32] [música]
[01:41] Bienvenido a este curso de N8N.
[01:43] Si estás aquí, probablemente tienes que automatizar algo.
[01:46] También podrías querer ahorrar tiempo en algo que ya estás haciendo o quieres crear flujos que te ayuden a ti en tu trabajo del día a día.
[01:52] En este curso nosotros vamos a empezar desde cero, pero con un enfoque práctico.
[01:56] No nos vamos a quedar en teoría larga.
[01:58] Cada bloque que nosotros veamos va a tener una aplicación práctica.
[02:01] Yo te voy a acompañar paso a paso para que entiendas cuáles son los
[02:03] paso para que entiendas cuáles son los botones que tú tienes que tocar y por qué esa elección importa.
[02:07] La meta es que al terminar este curso tú puedas crear automatizaciones útiles para ti, para tus proyectos o también para tus clientes.
[02:13] Vamos a cubrir desde los fundamentos de N8N hasta integraciones, manejos de datos, APIs, loops y un proyecto completo.
[02:21] Así que prepara tu entorno y tus ganas de aprender, porque ahora empezamos.
[02:28] Antes de meternos en lo técnico, quiero mostrarte por qué N8N es tan útil en el mundo real.
[02:36] N8N no es una herramienta para jugar, aunque por supuesto que puedes hacerlo si tú así quieres, pero es una herramienta para resolver problemas concretos.
[02:42] En el caso de las empresas de marketing, lo que puedes hacer es conectar formularios.
[02:46] Puedes también conectar hojas de cálculo, así como los Excel, también los correos electrónicos y la aplicación de Slack para que puedas capturar leads.
[02:54] Puedes recibir los datos de contacto del formulario y también de un correo electrónico y los ingresas todos a una hoja de cálculo.
[03:01] Luego, finalmente, lo que haces es notificarle al equipo correspondiente por Slack.
[03:04] correspondiente por Slack.
[03:06] Y si el equipo no utiliza Slack y utiliza Microsoft Teams, también lo puedes hacer.
[03:09] También lo puedes utilizar para operaciones internas.
[03:10] Si tienes distintos tipos de datos, como podría ser por ejemplo archivos o también tienes una base de datos y tú ves que estás copiando y pegando constantemente entre distintas aplicaciones, esto es algo que N8N puede automatizar, ya que N8N puede moverlos, transformarlos y validar estos datos sin necesidad de una intervención humana.
[03:30] También lo podemos utilizar para soporte.
[03:32] Y atención al cliente.
[03:34] Tú puedes recibir tus tickets de soporte por correo electrónico o también lo podrías recibir a través de un webhook.
[03:40] Y en cualquiera de estos dos casos, tú lo que puedes hacer es ir a identificar el usuario para que así puedas agregarle más datos o mayor contexto a estos tickets de soporte.
[03:48] Y luego lo que haces es que lo envías a la aplicación correspondiente.
[03:50] También se puede utilizar para producto y desarrollo.
[03:53] En el caso que ocurra algún evento, tú lo que puedes hacer es inmediatamente disparar un flujo que ya tienes automatizado.
[03:59] A estos se les llaman workflows, pero vamos a ver esto más adelante.
[04:01] Y estos workflows pueden
[04:05] más adelante.
[04:05] Y estos workflows pueden consultar APIs, pueden generar reportes
[04:07] consultar APIs, pueden generar reportes y también pueden sincronizar información
[04:10] y también pueden sincronizar información de distintos sistemas.
[04:12] de distintos sistemas.
[04:12] Y la idea es simple.
[04:14] simple.
[04:14] Todo proceso que sea repetitivo, repetitivo y repetitivo y con reglas
[04:16] repetitivo y repetitivo y con reglas claras es un perfecto candidato de
[04:18] claras es un perfecto candidato de automatización.
[04:20] automatización.
[04:20] Y durante este curso vamos a construir este tipo de
[04:21] vamos a construir este tipo de soluciones paso a paso.
[04:27] La buena noticia es que no necesitas ser
[04:29] La buena noticia es que no necesitas ser experto para poder tomar este curso,
[04:31] experto para poder tomar este curso, pero sí necesitas tener unas nociones
[04:33] pero sí necesitas tener unas nociones básicas de computación para que el curso
[04:35] básicas de computación para que el curso lo puedas tomar con la menor cantidad de
[04:37] lo puedas tomar con la menor cantidad de fricción posible.
[04:39] fricción posible.
[04:39] Tienes que saber instalar aplicaciones, tienes que saber
[04:40] instalar aplicaciones, tienes que saber también moverte entre carpetas, también
[04:43] también moverte entre carpetas, también tienes que saber editar archivos.
[04:44] tienes que saber editar archivos.
[04:44] Lo segundo es que tienes que entender un
[04:46] segundo es que tienes que entender un poco de lógica.
[04:48] poco de lógica.
[04:48] Por ejemplo, tienes que entender qué son las condiciones.
[04:50] entender qué son las condiciones.
[04:50] Si se cumple algo, tienes que ejecutar X y si
[04:53] cumple algo, tienes que ejecutar X y si no se cumple ese algo, tienes que
[04:54] no se cumple ese algo, tienes que ejecutar Y.
[04:57] ejecutar Y.
[04:57] También dentro de este curso vamos a utilizar herramientas web
[04:58] vamos a utilizar herramientas web comunes, como por ejemplo un explorador
[05:00] comunes, como por ejemplo un explorador web.
[05:02] web.
[05:02] También tienes que tener una cuenta de correo, tienes que tener nociones
[05:04] de correo, tienes que tener nociones básicas de API.
[05:04] Esto va a ser para las
[05:06] básicas de API.
[05:07] Esto va a ser para las partes más avanzadas donde nosotros vamos a incluir un poco de desarrollo de software y también te tienes que sentir cómodo en las distintas interfaces web de distintas aplicaciones, porque vamos a ver muchas interfaces web y de distintas aplicaciones.
[05:18] Para secciones más avanzadas vamos a ver JavaScript, así que si sabes programar vas a poder tomar esas secciones más avanzadas.
[05:24] Y si no sabes JavaScript, ve a tomar mi curso de JavaScript.
[05:26] No es obligatorio que tú domines en lo absoluto JavaScript, pero si tienes que estar abierto a aprender distintos conceptos de manera progresiva.
[05:34] Y por último, lo más importante, vas a tener que tener una actitud práctica.
[05:39] Si es que pruebas algo y te equivocas, entonces corriges y vuelves a probar.
[05:43] Si tienes esta actitud, este curso a ti te va a rendir muchísimo.
[05:50] Este curso está pensado para personas que quieren automatizar procesos reales.
[05:55] No es solamente para aprender la herramienta por curiosidad.
[05:57] Este curso es para ti si es que trabajas con tareas repetitivas.
[06:02] Eres freelancer, creador o emprendedor y necesitas sistemas más eficientes.
[06:05] Formas parte de un equipo de operaciones, marketing, soporte o
[06:08] operaciones, marketing, soporte o producto.
[06:09] O también si es que tú eres producto.
[06:11] O también si es que tú eres desarrollador y quieres empezar a
[06:12] desarrollador y quieres empezar a acelerar procesos de desarrollo sin
[06:14] necesidad de implementar todo desde
[06:15] cero. También es ideal si es que tú te encuentras empezando en el mundo de las
[06:18] automatizaciones y quieres tener una
[06:19] ruta clara de por dónde ir. Nosotros
[06:21] vamos desde los fundamentos hasta
[06:23] escenarios avanzados. Y todo esto con
[06:25] ejemplos prácticos. No es un curso
[06:27] orientado a teoría académica profunda.
[06:29] Este es un curso para construir, para
[06:31] validar y aplicar en el contexto
[06:34] profesional. Si ese es tu objetivo,
[06:36] estás en el lugar correcto.
[06:40] Si estás evaluando instalar N8N en tu
[06:43] máquina o si prefieres utilizar una VPS,
[06:46] es bueno que nosotros veamos primero los
[06:48] pro y los contra de cada una de estas
[06:50] opciones. En local, el principal
[06:51] beneficio es privacidad y control. Tus
[06:53] datos y tus credenciales se van a quedar
[06:55] dentro de tu máquina. Puedes trabajar
[06:57] offline y ajustar el entorno exactamente
[06:59] a tus necesidades. También sirve de
[07:01] mucho para aprender cómo funciona N8N
[07:03] por dentro. Ahora, ¿cuál es el contra?
[07:05] El arranque suele ser más lento. Tienes
[07:06] que ver configuraciones, dependencias,
[07:08] que ver configuraciones, dependencias, variables de entorno y posibles conflictos de versiones.
[07:12] Además, que la instalación es distinta dependiendo del sistema operativo en el cual tú lo quieras instalar.
[07:18] Si algo se rompe, volver a un estado anterior que no esté roto no necesariamente va a ser algo inmediato.
[07:24] Y también hay un punto práctico importante, la disponibilidad va a depender de tu equipo.
[07:30] Si se corta la electricidad o alguien por algún error apaga el computador, ya no tienes más acceso a N8N.
[07:35] Y por último, muy importante, los webhooks de algunos servicios no funcionan si tu máquina se encuentra corriendo en local.
[07:41] Para que esto funcione, vas a tener que exponer tu máquina a internet.
[07:45] En cambio, en una VPS, especialmente si el proveedor ya viene con máquinas con N8N preinstalado, es mucho más rápido de empezar a utilizar.
[07:52] En minutos lo tienes funcionando y puedes enfocarte en empezar a construir tus flujos en lugar de resolver fricción técnica.
[07:58] También tienes más facilidad para poder reiniciar la máquina o volver a lanzar el servicio o también recuperar el entorno con tan solo unos pocos clics.
[08:05] Sumado a eso, la disponibilidad suele ser más estable.
[08:07] La gran mayoría de los
[08:09] ser más estable.
[08:10] La gran mayoría de los servicios te ofrecen una disponibilidad de hasta el 99.9% 9%.
[08:13] Y esto es porque las empresas de hosting suelen tener sistemas de redundancia.
[08:14] En el caso que se vaya a la electricidad, ellos encienden los generadores y sigues con acceso a la máquina.
[08:17] Y ahora, ¿cuál es el contra?
[08:20] Es que estos tienen un costo mensual.
[08:22] Hay menos control de bajo nivel y estás delegando parte de tu infraestructura a un tercero.
[08:25] Esto no necesariamente es algo malo.
[08:28] Recuerda que existen empresas como, por ejemplo, Netflix que controlan el 40% del tráfico de internet y estos se encuentran alojados en un proveedor de VPS.
[08:38] Entonces, si tú priorizas privacidad y control fino local tiene mucho sentido, pero si priorizas rapidez, continuidad y simplicidad operativa, un VPS suele ser la opción más práctica para empezar.
[08:49] Y en este curso nosotros vamos a estar trabajando con una BPS y afortunadamente pudimos conseguir un descuento con hostgor para instancias de BPS que ya tienen N8N preinstalado.
[08:59] El link se va a encontrar en la descripción de este video y a mí en lo personal me encanta poder trabajar con marcas que pueden ofrecer descuentos y beneficios reales para los estudiantes.
[09:10] En este video te voy a mostrar cómo tú puedes contratar el servicio con HostGator y habilitar tu máquina con N8N para que así puedas ingresar a esta.
[09:18] Para eso vamos a ingresar al link que yo te dejé en la descripción de este video y vamos a venir a pinchar acá donde dice ver planes con hasta 67% off.
[09:28] Aquí existen varios servidores recomendados, existe el VPS, N8N estándar y también el entry.
[09:33] Aquí nosotros podemos ver el valor, en este caso es en pesos mexicanos, que cuántos son 62 pesos mexicanos en dólares.
[09:41] Y mira, al día de hoy son solamente $.
[09:43] La verdad es que esto no es terrible para nada.
[09:44] Entonces, podemos elegir este o también podemos elegir este.
[09:46] Vamos a pinchar aquí en contratar y acá nosotros podemos elegir el plazo que nosotros queremos contratar este servidor.
[09:52] Si lo queremos 3 años, nos va a salir cerca de los $.
[09:55] También podemos elegir dos, uno o también mes a mes en el caso que queramos ir probándolo.
[10:00] Una vez que lo hayas elegido, pinchas aquí en ir al carrito y acá podemos elegir si queremos registrar un dominio nuevo o si es que queremos utilizar uno que nosotros ya tengamos registrado.
[10:11] tengamos registrado.
[10:13] Pero independiente del caso que nosotros elijamos, después del caso que nosotros elijamos, después de esto nosotros vamos a tener que de esto nosotros vamos a tener que rellenar nuestros datos de contacto,
[10:17] rellenar nuestros datos de contacto, colocar los datos de la tarjeta y colocar los datos de la tarjeta y finalmente contratar el plan por el finalmente contratar el plan por el periodo que nosotros hayamos decidido.
[10:21] Y periodo que nosotros hayamos decidido. Y una vez que nosotros hayamos hecho esto, una vez que nosotros hayamos hecho esto, vamos a ver lo siguiente.
[10:25] deberíamos vamos a ver lo siguiente. deberíamos llegar a este panel de administración.
[10:27] llegar a este panel de administración. Acá nosotros podemos pinchar donde dice
[10:30] Acá nosotros podemos pinchar donde dice hospedaje y servidores y nos debería hospedaje y servidores y nos debería mostrar aquí nuestro BPS ya contratado.
[10:35] mostrar aquí nuestro BPS ya contratado. En este caso yo seleccioné el N8N entry.
[10:38] En este caso yo seleccioné el N8N entry. Acá nosotros podemos conectarnos al bps
[10:40] Acá nosotros podemos conectarnos al bps con SSH o directamente podemos abrir con SSH o directamente podemos abrir N8N, que eso es lo que yo voy a hacer
[10:44] N8N, que eso es lo que yo voy a hacer ahora. Aquí nosotros colocamos nuestros ahora. Aquí nosotros colocamos nuestros datos, después pinchamos acá en next y
[10:48] datos, después pinchamos acá en next y aquí hemos llegado ya finalmente al aquí hemos llegado ya finalmente al panel de N8N.
[10:50] panel de N8N. Aquí nosotros podemos Aquí nosotros podemos rellenar estos datos o no hacerlo si
[10:53] rellenar estos datos o no hacerlo si solo pinchamos en get started y aquí nos solo pinchamos en get started y aquí nos está dando la opción de poder acceder a
[10:57] está dando la opción de poder acceder a funcionalidades pagadas. Alto ahí, funcionalidades pagadas.
[10:59] funcionalidades pagadas. Alto ahí, espera, Sonic las del futuro. Yo dije funcionalidades pagadas, pero en verdad
[11:02] funcionalidades pagadas, pero en verdad esto es gratis. Si tú sigues esos pasos, esto es gratis.
[11:04] esto es gratis. Si tú sigues esos pasos, vas a poder acceder a funcionalidades vas a poder acceder a funcionalidades premium, pero sin tener que pagar nada
[11:08] premium, pero sin tener que pagar nada extra. Así que te sugiero también extra. Así que te sugiero también continuar con ese paso para que puedas
[11:12] continuar con ese paso para que puedas obtener la licencia.
[11:14] Y recuerda que esto es gratis.
[11:16] Recuerda, esta herramienta, si bien es open source, también cuenta con el apoyo de una empresa detrás.
[11:17] Y en este caso nosotros vamos a poder acceder al historial de los workflow, Advance de Paging, Execution, Search and Taging.
[11:26] Aquí nosotros vamos a poder buscar y organizar workflows que hayamos creado antes y también vamos a poder tener carpetas.
[11:31] Así que yo voy a colocar acá mi correo electrónico para recibir mi licencia.
[11:35] Y mira, acá me está indicando que mi licencia se encuentra en camino, que tengo que chequear mi correo.
[11:39] Aquí está el correo que yo ingresé para que podamos encontrar la licencia y luego nos podemos ir aquí a usage and plan para poder activar la licencia.
[11:47] Así que voy a hacer eso.
[11:49] Ya llegué aquí a usage and plan.
[11:51] Voy a ingresar mi key pinchamos aquí en activate.
[11:53] Y con eso ya tenemos activado nuestro servidor de N8N.
[11:55] Ahora ya podemos empezar a crear nuestros propios flujos de trabajo para poder automatizar nuestras tareas.
[12:06] Hay una última cosa que quiero que tú veas antes de empezar con este curso y es lo siguiente.
[12:09] Luego de que tú hayas creado tu servidor y hayas iniciado
[12:12] creado tu servidor y hayas iniciado sesión con éxito, como yo te mencioné,
[12:14] sesión con éxito, como yo te mencioné, te debería aparecer esto de acá arriba.
[12:17] te debería aparecer esto de acá arriba.
[12:19] no exactamente igual, pero sí con un número bastante parecido.
[12:20] Esto quiere decir que nosotros no estamos realizando conexiones seguras hacia nuestro servidor.
[12:24] Ahora, ¿es esto terrible?
[12:27] No, la verdad es que no es terrible, pero van a existir algunos casos de uso que no te van a funcionar bien, como por ejemplo conectarse con la API de Gmail para que podamos enviar correos electrónicos.
[12:35] Entonces, lo mejor que nosotros podemos hacer es intentar corregir esto de manera inmediata.
[12:40] Ahora, si no lo quieres corregir porque no tienes un dominio o porque no vas a utilizar la API de Gmail, de todas maneras igual vas a poder tomar este curso.
[12:47] Sin embargo, yo te sugiero de que este error trates de solucionarlo lo antes posible y yo te voy a mostrar cómo se hace a continuación.
[12:52] Si tú adquiriste tu nombre de dominio con hostgator, este paso debiese resolverse de manera automática.
[12:58] Pero si tú no tienes tu nombre de dominio con hostator, en ese caso vas a tener que realizar los siguientes pasos para que te quede habilitado.
[13:05] Si tú lo adquiriste con hostator, puedes saltarte este paso y llegar sencillamente a la parte donde creamos el nodo de Gmail.
[13:11] Pero si no es
[13:13] creamos el nodo de Gmail.
[13:15] Pero si no es así, vamos a ver cómo se hace a continuación.
[13:17] Acá quiero que te fijes en lo siguiente.
[13:19] Note secure y aparece la IP del servidor.
[13:21] Esto es lo que nosotros tenemos que cambiar.
[13:23] Para eso, nosotros vamos a tener que ingresar al panel de administración donde nosotros compramos nuestro dominio y agregar un registro tipo A.
[13:27] Te voy a mostrar cómo se hace.
[13:31] Acá yo he ingresado mi panel de administración de Namechip y he seleccionado la opción de Advance DNS.
[13:37] Si tú no lo tienes contratado, Name shift.
[13:38] En ese caso vas a tener que ingresar igual a tu panel de administración y vas a tener que colocar la opción de configuración de DNS avanzado.
[13:45] Y ahora quiero que te fijes en lo siguiente.
[13:47] Acá yo agregué un récord de tipo A, donde el valor que yo le pasé fue N8N y además de eso le estoy pasando la IP de la máquina y el siguiente valor que se encuentra acá a la izquierda, que es el TTL, yo decidí dejarlo en automático.
[14:02] Después de esto, vas a tener que esperar un par de minutos a que los datos de DNS se hayan propagado a través de todos los servidores de DNS a nivel mundial.
[14:11] Después podrás ejecutar el comando de NS Lookup N8N seguido de tu
[14:16] comando de NS Lookup N8N seguido de tu dominio.
[14:18] Aquí yo voy a presionar enter y como puedes ver ya aparece la dirección IP del servidor.
[14:21] Entonces esto en teoría debería decir que ya podemos ingresar a nuestro servidor n utilizando solamente n8.yuo.
[14:29] Y no, la verdad es que no funciona así.
[14:31] Si nosotros intentamos acceder desde acá nolamundo.
[14:34] Voy a presionar enter me va a indicar que la web no se encuentra.
[14:38] Sin embargo, si nosotros revisamos las peticiones y aquí yo refresco, voy a volver a pinchar acá, vamos a ver que me aparece un status 404, que estoy accediendo a esta IP.
[14:43] Sin embargo, estoy intentando acceder por el puerto 443, que por si tú no lo sabías, este es el puerto por el cual tú deberías acceder si es que estás utilizando algún certificado SSL.
[14:58] Ahora lo que tenemos que hacer es ingresar a nuestro servidor para poder reiniciar el servicio y cambiar un par de configuraciones.
[15:06] Pero esto es superfácil.
[15:08] Vamos a pinchar acá donde dice conectarse con SSH.
[15:11] Y acá nos aparecen los datos de conexión.
[15:14] Nos
[15:16] aparecen los datos de conexión.
[15:19] Nos aparece la IP, el puerto, el usuario que nosotros vamos a tener que utilizar.
[15:22] Puedes pinchar aquí para que te lo muestre y después tienes que ingresar la contraseña que tú configuraste cuando creaste el servidor.
[15:29] Y el comando para poder ingresar a nuestro servidor es el siguiente: SSH-p.
[15:34] Le indicamos el número del puerto, seguido del nombre de usuario @ y el dominio que nosotros le indicamos.
[15:42] Ahora vamos a presionar enter.
[15:44] Tipeamos nuestra contraseña y con esto ya ingresamos.
[15:47] Ah, no se ve el usuario.
[15:49] Déjame censurarlo.
[15:50] Ya. Bueno, que lo vamos a censurar.
[15:51] Si es root, es root.
[15:53] Ya, yo después voy a deshabilitar el usuario.
[15:58] Ahora vamos a escribir lo siguiente. CD bar haciaelante opt.
[15:59] Vamos a presionar la tecla de tab para que nos autocomplete.
[16:01] Y acá nosotros vamos a presionar enter.
[16:02] Vamos a intrusar para ver qué tipo de cosas nos podemos encontrar acá.
[16:06] Y mira, esto se está haciendo con Docker.
[16:08] Mira qué fácil.
[16:10] Ahora lo que tenemos que hacer es modificar nuestro archivo de Docker Compose.
[16:14] Esto nosotros lo podemos hacer con nano.
[16:16] A mí no me gusta mucho nano, pero voy a utilizar nano porque me
[16:18] pero voy a utilizar nano porque me imagino que va a ser más fácil de
[16:19] imagino que va a ser más fácil de utilizar por todas las personas que
[16:20] utilizar por todas las personas que están viendo, pero a mí me gusta BIM o
[16:22] están viendo, pero a mí me gusta BIM o NeoBam en específico.
[16:24] En fin, estoy divagando.
[16:26] Vamos a presionar enter y acá nosotros tenemos que ir a buscar la
[16:29] nosotros tenemos que ir a buscar la línea donde aparece el nombre de
[16:31] línea donde aparece el nombre de dominio.
[16:35] Aquí tenemos una N8N-host.
[16:39] La cambiamos por n.io. mundo.io, la URL
[16:41] de Webhook, vamos a hacer lo mismo y vamos a seguir bajando porque son tres
[16:42] vamos a seguir bajando porque son tres partes donde tenemos que cambiar esta
[16:44] partes donde tenemos que cambiar esta línea.
[16:46] Aquí en esta línea donde se encuentra el apartado de labels, vamos a
[16:48] encuentra el apartado de labels, vamos a venir acá donde está host y vamos a
[16:50] venir acá donde está host y vamos a cambiar esto por nolholamundo.io.
[16:53] Y ahora vamos a guardar con control o
[16:55] presionamos enter.
[16:57] Ya ahí se guardó.
[17:00] Ahora nos vamos a salir con control X.
[17:02] Vamos a limpiar la terminal con clear y
[17:04] vamos a ejecutar el comando de Docker compose down.
[17:06] Si alguna vez te dijeron que esto se dice con post, te mintieron,
[17:08] te mintieron, se dice con po c y presionamos enter.
[17:10] Se detuvo N8N, todavía no.
[17:12] Detente que te detengas, hombre.
[17:14] Ahí paró.
[17:16] 10 segundos en parar.
[17:16] Y ahora volvemos a iniciar Docker.
[17:16] Docker compose C app men D.
[17:16] Y la
[17:20] Docker. Docker compose C app men D.
[17:21] Y la menos D es para que este se ejecute como demonio y así tú te puedas salir de la terminal y que esto no se detenga.
[17:24] Enter. Y ya está.
[17:26] Y si todo salió bien, escribimos el nombre de dominio n8holamundo.
[17:30] Y presionamos enter y ya está.
[17:32] Ahora podemos ingresar a nuestro servidor de N8N utilizando nuestro subdominio.
[17:40] Bienvenidos a la segunda sección de este curso.
[17:41] En la sección anterior, nosotros vimos por qué tenemos que aprender N8N, para quién es este curso y también cómo podemos dejar habilitado el VPS para poder empezar a trabajar con N8N.
[17:52] Esta sección nosotros la vamos a tratar como si estuviésemos aprendiendo a manejar.
[17:55] Primero, entiendes para qué sirve el auto y también cómo lo puedes encender, pero todavía no vas a estar listo para salir a la carretera.
[18:00] En NN pasa exactamente igual.
[18:02] Si no entiendes los fundamentos, cualquier automatización que tú vayas a armar se va a romper con el primer cambio que tú le hagas.
[18:09] Y en esta sección vamos a construir una base técnica.
[18:11] Vamos a ver qué es un nodo, la diferencia real entre trigger y acción.
[18:16] también cómo se estructura un workflow o un flujo de trabajo, cómo leer loss para
[18:20] un flujo de trabajo, cómo leer loss para que puedas depurar tus aplicaciones y
[18:22] que puedas depurar tus aplicaciones y también vamos a ver cómo podemos
[18:23] también vamos a ver cómo podemos utilizar los triggers manual, los
[18:25] utilizar los triggers manual, los triggers con chrome y disparos externos
[18:27] triggers con chrome y disparos externos con http.
[18:29] En la vida real, las automatizaciones pueden empezar porque
[18:31] automatizaciones pueden empezar porque tú presionaste un botón y gatillaste una
[18:33] tú presionaste un botón y gatillaste una serie de eventos.
[18:35] serie de eventos.
[18:35] También porque llegó la hora de enviar un reporte diario o
[18:37] la hora de enviar un reporte diario o porque entra una petición online desde
[18:38] porque entra una petición online desde algún formulario web.
[18:40] algún formulario web.
[18:40] Estos son tres escenarios que son sumamente comunes en
[18:42] escenarios que son sumamente comunes en las empresas y en esta sección vas a
[18:44] las empresas y en esta sección vas a aprender sobre estos casos.
[18:46] aprender sobre estos casos.
[18:46] Si entiendes las bases de esta sección, el resto del
[18:48] las bases de esta sección, el resto del curso se te va a hacer muy fácil, todo
[18:49] curso se te va a hacer muy fácil, todo se te va a hacer mucho más claro y más
[18:51] se te va a hacer mucho más claro y más entretenido.
[18:53] entretenido.
[18:53] Así que vamos a ir con calma, paso a paso, porque lo que viene
[18:54] calma, paso a paso, porque lo que viene se pone cada vez más potente y tú ya
[18:57] se pone cada vez más potente y tú ya estás listo para eso.
[19:02] Cuando alguien abre N8N por primera vez,
[19:04] Cuando alguien abre N8N por primera vez, va a haber muchos nodos y pareciera que
[19:06] va a haber muchos nodos y pareciera que la verdad todos sirven para todo, pero
[19:08] la verdad todos sirven para todo, pero en realidad en NN existe un nodo que
[19:10] en realidad en NN existe un nodo que inicia y otro que ejecuta acciones.
[19:13] inicia y otro que ejecuta acciones.
[19:13] piénsalo como si este fuese una línea de
[19:15] piénsalo como si este fuese una línea de producción.
[19:15] Va a existir un nodo que
[19:17] producción.
[19:17] Va a existir un nodo que inicia absolutamente todas las acciones
[19:19] inicia absolutamente todas las acciones y ese que inicia después nosotros lo
[19:21] y ese que inicia después nosotros lo vamos a conectar a otros nodos.
[19:24] Estos vamos a conectar a otros nodos.
[19:26] Estos son nodos de acciones.
[19:27] En estos nosotros podemos tomar información y transformarla.
[19:29] O también lo que podemos hacer es enviar o guardar información.
[19:32] En este video te tienes que quedar con solamente una idea.
[19:34] Van a existir nodos que inician una serie de eventos y van a haber otros nodos que ejecutan acciones.
[19:42] Luego estas acciones podrían tomar un correo electrónico, podrían modificarlo o también podrían enviar un correo electrónico.
[19:49] Un error común dentro de N8N es intentar comenzar un workflow con un nodo de acción, por lo que siempre tienes que verificar que el primer nodo sea un trigger.
[19:57] Para comenzar a crear nuestros workflow, nosotros podemos venir a pinchar acá donde dice create workflow y eso lo que va a hacer es mostrarnos esta pantalla.
[20:05] Acá nosotros podemos pinchar donde dice addos que buscar nuestros trigger.
[20:11] Vamos a comenzar con el trigger manual y luego podemos agregar un siguiente nodo pinchando acá en este símbolo de más.
[20:16] Acá yo voy a escribir set y voy a seleccionar edit fields set.
[20:20] Pinchamos aquí en addfield y acá nosotros podemos
[20:22] aquí en addfield y acá nosotros podemos agregar un campo saludo y el valor va a
[20:24] agregar un campo saludo y el valor va a ser hola mundo. Ahora nosotros podemos
[20:26] ser hola mundo. Ahora nosotros podemos cerrar pinchando acá y podemos ejecutar
[20:28] cerrar pinchando acá y podemos ejecutar nuestro workflow. Aquí nos indica que el
[20:30] nuestro workflow. Aquí nos indica que el workflow ha sido ejecutado de manera
[20:31] workflow ha sido ejecutado de manera exitosa. Y si nosotros venimos a pinchar
[20:33] exitosa. Y si nosotros venimos a pinchar acá donde dice edit fields, pinchamos
[20:35] acá donde dice edit fields, pinchamos dos veces, aquí arriba a la derecha
[20:37] dos veces, aquí arriba a la derecha donde dice output, vamos a ver saludo,
[20:39] donde dice output, vamos a ver saludo, hola mundo. Con esto ya entendiste toda
[20:41] hola mundo. Con esto ya entendiste toda la base de N8N. Hay un nodo que se
[20:43] la base de N8N. Hay un nodo que se encarga de gatillar las acciones y otro
[20:45] encarga de gatillar las acciones y otro nodo que se encarga de hacer tareas o
[20:47] nodo que se encarga de hacer tareas o ejecutar acciones. En el siguiente video
[20:49] ejecutar acciones. En el siguiente video nos vamos a acercar un poco más a lo que
[20:50] nos vamos a acercar un poco más a lo que son los workflow.
[20:55] En NN, los workflow lo que intentan
[20:57] En NN, los workflow lo que intentan encapsular es una serie de eventos que
[20:59] encapsular es una serie de eventos que siguen con una lógica. Un workflow es
[21:01] siguen con una lógica. Un workflow es una historia que representa un inicio y
[21:03] una historia que representa un inicio y un fin. Si tú no logras explicar en 30
[21:06] un fin. Si tú no logras explicar en 30 segundos o menos de qué es lo que se
[21:08] segundos o menos de qué es lo que se trata un workflow, lo más probable es
[21:10] trata un workflow, lo más probable es que este se encuentre mal definido. Por
[21:11] que este se encuentre mal definido. Por ejemplo, en este caso nosotros tenemos
[21:13] ejemplo, en este caso nosotros tenemos que nuestro workflow solamente se llama
[21:15] que nuestro workflow solamente se llama My Workflow 2. Esto por supuesto que no
[21:17] My Workflow 2. Esto por supuesto que no es muy representativo de la realidad.
[21:19] es muy representativo de la realidad. Entonces, lo que primero nosotros
[21:21] Entonces, lo que primero nosotros tenemos que hacer es definir cuál va a
[21:22] tenemos que hacer es definir cuál va a ser la tarea de nuestro workflow. Y para
[21:24] ser la tarea de nuestro workflow. Y para este workflow nosotros lo vamos a
[21:26] este workflow nosotros lo vamos a definir como posible lead. Y acá
[21:28] definir como posible lead. Y acá presionamos enter. Y esto debería
[21:29] presionamos enter. Y esto debería cambiar el nombre del workflow. Ahora lo
[21:31] cambiar el nombre del workflow. Ahora lo que vamos a hacer es cambiar la
[21:33] que vamos a hacer es cambiar la implementación de este nodo que dice
[21:35] implementación de este nodo que dice edit fields. Vamos a cambiar el saludo
[21:37] edit fields. Vamos a cambiar el saludo por nombre, hola mundo. Y vamos a
[21:39] por nombre, hola mundo. Y vamos a pinchar acá en add field. Aquí nosotros
[21:41] pinchar acá en add field. Aquí nosotros podemos cambiar el valor de string a
[21:43] podemos cambiar el valor de string a número. Vamos a decir edad y vamos a
[21:45] número. Vamos a decir edad y vamos a colocar que la edad de esta persona es
[21:47] colocar que la edad de esta persona es 22 años. Ahora nosotros podemos cerrar
[21:49] 22 años. Ahora nosotros podemos cerrar esto. Y fíjate que ahora este nodo nos
[21:52] esto. Y fíjate que ahora este nodo nos está mostrando un triángulo amarillo. Si
[21:55] está mostrando un triángulo amarillo. Si nosotros colocamos el mouse encima, nos
[21:56] nosotros colocamos el mouse encima, nos va a decir que la configuración del nodo
[21:58] va a decir que la configuración del nodo ha cambiado, lo que significa que su
[22:00] ha cambiado, lo que significa que su salida podría cambiar. Entonces, lo que
[22:02] salida podría cambiar. Entonces, lo que nosotros deberíamos hacer es ejecutar
[22:04] nosotros deberíamos hacer es ejecutar este nodo nuevamente. Para poder
[22:06] este nodo nuevamente. Para poder ejecutar solamente este nodo, podemos
[22:08] ejecutar solamente este nodo, podemos venir a pinchar acá donde dice execute
[22:10] venir a pinchar acá donde dice execute step, que es ese pequeño botón de play,
[22:12] step, que es ese pequeño botón de play, y pinchamos ahí. Y ahí nosotros podemos
[22:14] y pinchamos ahí. Y ahí nosotros podemos ver como este se ha ejecutado. Ahora
[22:16] ver como este se ha ejecutado. Ahora podemos venir a agregar otro nodo, así
[22:18] podemos venir a agregar otro nodo, así que pinchamos acá y vamos a buscar otro
[22:20] que pinchamos acá y vamos a buscar otro nodo que se va a llamar if. Todas estas
[22:22] nodo que se va a llamar if. Todas estas cosas nosotros las vamos a ver en mayor
[22:24] cosas nosotros las vamos a ver en mayor detalle. Ahora es solamente es para que
[22:25] detalle. Ahora es solamente es para que tengas un acercamiento a tu primer
[22:27] tengas un acercamiento a tu primer flujo. Luego de eso, vamos a seleccionar
[22:29] flujo. Luego de eso, vamos a seleccionar acá donde dice if. Y acá nosotros
[22:31] acá donde dice if. Y acá nosotros podemos ver que aquí en la izquierda
[22:34] podemos ver que aquí en la izquierda tenemos un título que dice input,
[22:35] tenemos un título que dice input, seguido de todos los campos que nosotros
[22:38] seguido de todos los campos que nosotros recibimos de nuestro nodo anterior, del
[22:41] recibimos de nuestro nodo anterior, del nodo de set. Acá nosotros tenemos el
[22:43] nodo de set. Acá nosotros tenemos el nombre y también tenemos la edad. Y esta
[22:45] nombre y también tenemos la edad. Y esta es la parte maravillosa que tiene N8N.
[22:48] es la parte maravillosa que tiene N8N. Nosotros podemos tomar uno de estos
[22:50] Nosotros podemos tomar uno de estos campos y mientras mantenemos presionado
[22:52] campos y mientras mantenemos presionado el click podemos arrastrarlo y dejarlo
[22:55] el click podemos arrastrarlo y dejarlo caer en alguno de estos campos. Yo lo
[22:57] caer en alguno de estos campos. Yo lo voy a dejar caer acá en el primero y
[22:59] voy a dejar caer acá en el primero y quiero que te fijes en esto. Acá me está
[23:02] quiero que te fijes en esto. Acá me está mostrando algo que pareciera ser una
[23:04] mostrando algo que pareciera ser una expresión regular, pero esto la verdad
[23:06] expresión regular, pero esto la verdad es que es sencillamente JavaScript, con
[23:08] es que es sencillamente JavaScript, con el cual nosotros vamos a poder después
[23:10] el cual nosotros vamos a poder después realizar operaciones sobre estos mismos
[23:12] realizar operaciones sobre estos mismos valores. Por ahora, yo lo voy a dejar
[23:14] valores. Por ahora, yo lo voy a dejar así o si es que nosotros pinchamos acá,
[23:16] así o si es que nosotros pinchamos acá, vamos a poder ver un listado de un
[23:18] vamos a poder ver un listado de un montón de operaciones que nosotros
[23:19] montón de operaciones que nosotros podemos realizar. Aquí yo le voy a
[23:21] podemos realizar. Aquí yo le voy a indicar que yo quiero seleccionar número
[23:23] indicar que yo quiero seleccionar número y luego voy a seleccionar la opción de
[23:26] y luego voy a seleccionar la opción de is greater than y luego voy a
[23:28] is greater than y luego voy a seleccionar el valor de 17 y después de
[23:32] seleccionar el valor de 17 y después de eso puedo pinchar aquí en execute step.
[23:34] eso puedo pinchar aquí en execute step. Acá nosotros tenemos el output el cual
[23:36] Acá nosotros tenemos el output el cual me está diciendo true branch significa
[23:38] me está diciendo true branch significa que esta colección de datos ha pasado
[23:40] que esta colección de datos ha pasado por el lado del éxito. Y también me está
[23:42] por el lado del éxito. Y también me está mostrando acá false branchicando que no
[23:45] mostrando acá false branchicando que no hay absolutamente ningún dato que esté
[23:47] hay absolutamente ningún dato que esté pasando por acá. Ahora nosotros podemos
[23:49] pasando por acá. Ahora nosotros podemos cerrar acá y si movemos un poquito más
[23:52] cerrar acá y si movemos un poquito más para acá vamos a poder ver que ahora
[23:54] para acá vamos a poder ver que ahora tenemos dos opciones, tenemos true y
[23:56] tenemos dos opciones, tenemos true y tenemos false. Por ahora nosotros ya
[23:58] tenemos false. Por ahora nosotros ya tenemos que este usuario es mayor de
[24:00] tenemos que este usuario es mayor de edad, entonces nosotros podríamos
[24:01] edad, entonces nosotros podríamos empezar a realizar operaciones
[24:03] empezar a realizar operaciones diferentes que si fuese un menor de
[24:04] diferentes que si fuese un menor de edad. Por ahora yo voy a colocar
[24:06] edad. Por ahora yo voy a colocar solamente el nodo de no op. No operation
[24:09] solamente el nodo de no op. No operation do nothing. Podemos ejecutarlo y aquí
[24:12] do nothing. Podemos ejecutarlo y aquí nosotros tenemos los datos de salida. Y
[24:14] nosotros tenemos los datos de salida. Y voy a cerrar acá. Y puedo hacer
[24:15] voy a cerrar acá. Y puedo hacer exactamente lo mismo con el camino de
[24:18] exactamente lo mismo con el camino de false. También voy a buscar no op, no
[24:20] false. También voy a buscar no op, no operation, do nothing y ejecuto también
[24:23] operation, do nothing y ejecuto también este paso. Y aquí nosotros podemos
[24:24] este paso. Y aquí nosotros podemos pinchar ahora en esta X. Después de ver
[24:26] pinchar ahora en esta X. Después de ver este video, yo quiero que te quedes con
[24:28] este video, yo quiero que te quedes con el siguiente concepto. Cada vez que tú
[24:30] el siguiente concepto. Cada vez que tú vayas a construir un workflow de ahora
[24:32] vayas a construir un workflow de ahora en adelante, este tiene que tener un
[24:33] en adelante, este tiene que tener un sentido. Tiene que cumplir con un
[24:35] sentido. Tiene que cumplir con un objetivo. Si tú puedes explicar el
[24:37] objetivo. Si tú puedes explicar el inicio, el proceso y la salida que tú
[24:40] inicio, el proceso y la salida que tú vas a hacer, vas bien. Si un nodo hace
[24:42] vas a hacer, vas bien. Si un nodo hace muchas cosas, sepáralo. Y si existen
[24:44] muchas cosas, sepáralo. Y si existen nodos sin un motivo claro, elimínalos o
[24:46] nodos sin un motivo claro, elimínalos o reubícalos. Además, cada nodo que tú
[24:48] reubícalos. Además, cada nodo que tú vayas agregando, lo mejor que puedes
[24:50] vayas agregando, lo mejor que puedes hacer es irlo probando paso a paso.
[24:56] Cuando un workflow falla, nosotros vamos
[24:58] Cuando un workflow falla, nosotros vamos a necesitar herramientas para poder
[25:00] a necesitar herramientas para poder depurar qué fue lo que ocurrió. Y para
[25:02] depurar qué fue lo que ocurrió. Y para eso mismo nos sirven los looks, ya que
[25:03] eso mismo nos sirven los looks, ya que con ellos nosotros vamos a poder
[25:05] con ellos nosotros vamos a poder depurar, pero sin adivinar. Para poder
[25:07] depurar, pero sin adivinar. Para poder ver loss de nuestras ejecuciones,
[25:09] ver loss de nuestras ejecuciones, nosotros podemos venir aquí a donde dice
[25:11] nosotros podemos venir aquí a donde dice executions. Vamos a pinchar acá y esto
[25:13] executions. Vamos a pinchar acá y esto nos va a mostrar los logs de ejecución
[25:16] nos va a mostrar los logs de ejecución de nuestro workflow a lo largo de la
[25:19] de nuestro workflow a lo largo de la historia. Como puedes ver aquí, yo tengo
[25:20] historia. Como puedes ver aquí, yo tengo todo el historial de todas las veces que
[25:22] todo el historial de todas las veces que yo he ejecutado el workflow. Y si por
[25:24] yo he ejecutado el workflow. Y si por alguna razón yo quisiera acceder al
[25:25] alguna razón yo quisiera acceder al detalle, por ejemplo, de esta ejecución
[25:27] detalle, por ejemplo, de esta ejecución de acá, yo lo que hago es que la
[25:29] de acá, yo lo que hago es que la selecciono y luego puedo venir acá para
[25:31] selecciono y luego puedo venir acá para ver qué fue lo que ocurrió y voy a
[25:33] ver qué fue lo que ocurrió y voy a pinchar aquí en este nodo de if. Pero
[25:35] pinchar aquí en este nodo de if. Pero quiero que te fijes en algo. Esto
[25:36] quiero que te fijes en algo. Esto representa la historia en el pasado.
[25:38] representa la historia en el pasado. Entonces, acá nosotros no tenemos el
[25:41] Entonces, acá nosotros no tenemos el camino de éxito ni el camino de fracaso,
[25:44] camino de éxito ni el camino de fracaso, porque eso nosotros lo implementamos
[25:45] porque eso nosotros lo implementamos después en el futuro. Así que voy a
[25:47] después en el futuro. Así que voy a pinchar en esto dos veces. Y acá yo
[25:49] pinchar en esto dos veces. Y acá yo puedo ver la ejecución que en este caso
[25:50] puedo ver la ejecución que en este caso me está diciendo 17. Y además fíjate en
[25:53] me está diciendo 17. Y además fíjate en lo que me está mostrando en el mouse. Me
[25:54] lo que me está mostrando en el mouse. Me está mostrando eso. Significa que no lo
[25:56] está mostrando eso. Significa que no lo puedo editar. ¿Por qué? Porque esto
[25:57] puedo editar. ¿Por qué? Porque esto ocurrió en el pasado, no tiene sentido
[25:59] ocurrió en el pasado, no tiene sentido que nosotros cambiemos los datos de algo
[26:00] que nosotros cambiemos los datos de algo que ocurrió en el pasado. Si quisiera
[26:02] que ocurrió en el pasado. Si quisiera ver algo más reciente, puedo venir a
[26:03] ver algo más reciente, puedo venir a pinchar aquí en el último. Vamos a
[26:05] pinchar aquí en el último. Vamos a esperar a que cargue. Y acá nosotros ya
[26:07] esperar a que cargue. Y acá nosotros ya tenemos nuestro flujo en una etapa
[26:09] tenemos nuestro flujo en una etapa posterior donde este ya se encontraba
[26:11] posterior donde este ya se encontraba diseñado.
[26:15] Y la última parte que tenemos que ver
[26:17] Y la última parte que tenemos que ver antes de pasar a los triggers es el tema
[26:19] antes de pasar a los triggers es el tema de nuestro primer workflow. Si nosotros
[26:21] de nuestro primer workflow. Si nosotros intentamos salirnos de acá, por ejemplo,
[26:23] intentamos salirnos de acá, por ejemplo, pinchando acá en personal, esto me va a
[26:25] pinchando acá en personal, esto me va a indicar que nosotros tenemos que guardar
[26:26] indicar que nosotros tenemos que guardar los cambios. Por supuesto, si es que
[26:27] los cambios. Por supuesto, si es que nosotros pinchamos acá, todos los
[26:29] nosotros pinchamos acá, todos los cambios que nosotros hemos realizado los
[26:30] cambios que nosotros hemos realizado los vamos a perder. Así que lo que tenemos
[26:32] vamos a perder. Así que lo que tenemos que hacer es pinchar aquí en save.
[26:34] que hacer es pinchar aquí en save. Nosotros podemos pinchar en save cuando
[26:35] Nosotros podemos pinchar en save cuando intentamos salirnos del workflow o
[26:38] intentamos salirnos del workflow o también podemos acceder a guardar
[26:40] también podemos acceder a guardar pinchando arriba a la derecha. Yo lo que
[26:42] pinchando arriba a la derecha. Yo lo que voy a hacer es cerrar esto que aparece
[26:44] voy a hacer es cerrar esto que aparece acá y me voy a venir nuevamente a mi
[26:47] acá y me voy a venir nuevamente a mi workflow de possible lead. Como puedes
[26:49] workflow de possible lead. Como puedes ver, acá arriba me aparece save y
[26:50] ver, acá arriba me aparece save y published. Este botón nosotros no lo
[26:52] published. Este botón nosotros no lo vamos a tocar todavía. Y lo que voy a
[26:54] vamos a tocar todavía. Y lo que voy a hacer es una pequeña modificación a
[26:56] hacer es una pequeña modificación a nuestro WF. Como puedes ver, yo lo que
[26:57] nuestro WF. Como puedes ver, yo lo que hice fue moverlo un poco y ya me ha
[27:00] hice fue moverlo un poco y ya me ha mostrado este botón de save con un color
[27:02] mostrado este botón de save con un color naranjo. También tenemos el atajo de
[27:03] naranjo. También tenemos el atajo de teclado que es con comando S. En el caso
[27:05] teclado que es con comando S. En el caso que queramos guardar, yo voy a pinchar
[27:07] que queramos guardar, yo voy a pinchar aquí sencillamente. Perfecto. Y así
[27:09] aquí sencillamente. Perfecto. Y así nuestro workflow ha quedado guardado y
[27:10] nuestro workflow ha quedado guardado y podemos reutilizarlo en un futuro.
[27:16] No todos los workflows o flujos que
[27:18] No todos los workflows o flujos que creemos en N8N comienzan igual. Elegir
[27:21] creemos en N8N comienzan igual. Elegir el trigger correcto nos va a ahorrar
[27:23] el trigger correcto nos va a ahorrar trabajo extra, errores o
[27:25] trabajo extra, errores o automatizaciones lentas. Y en esta clase
[27:27] automatizaciones lentas. Y en esta clase nosotros vamos a aprender un criterio
[27:29] nosotros vamos a aprender un criterio para poder decidir cuándo elegir un
[27:31] para poder decidir cuándo elegir un trigger o el otro. Para nosotros poder
[27:32] trigger o el otro. Para nosotros poder decidir cómo inicia un flujo, vamos a
[27:35] decidir cómo inicia un flujo, vamos a tener cuatro posibilidades, aunque la
[27:37] tener cuatro posibilidades, aunque la cuarta deriva de la tercera. La primera
[27:39] cuarta deriva de la tercera. La primera es un trigger manual donde nosotros
[27:41] es un trigger manual donde nosotros vamos a ir a pinchar el botón que dice
[27:43] vamos a ir a pinchar el botón que dice execute workflow. La segunda es con un
[27:45] execute workflow. La segunda es con un Chrome. Un Chrome le va a indicar al
[27:47] Chrome. Un Chrome le va a indicar al workflow que este se tiene que ejecutar
[27:49] workflow que este se tiene que ejecutar cada cierto tiempo. Por ejemplo, podría
[27:52] cada cierto tiempo. Por ejemplo, podría ejecutarse todos los días a las 9 de la
[27:54] ejecutarse todos los días a las 9 de la mañana, a las 12 de la noche. O también
[27:56] mañana, a las 12 de la noche. O también podría tener que ejecutarse cada cierto
[27:59] podría tener que ejecutarse cada cierto tiempo, por ejemplo, cada una hora, cada
[28:01] tiempo, por ejemplo, cada una hora, cada 30 minutos. Todo eso se hace con un
[28:02] 30 minutos. Todo eso se hace con un Chron. Y luego tenemos el tercero que es
[28:05] Chron. Y luego tenemos el tercero que es webhook. Un webhook es cuando ocurre un
[28:07] webhook. Un webhook es cuando ocurre un evento. Por ejemplo, te llegó un correo
[28:09] evento. Por ejemplo, te llegó un correo electrónico o alguien envió un mensaje
[28:11] electrónico o alguien envió un mensaje por Slack o te ha llegado un formulario
[28:14] por Slack o te ha llegado un formulario desde la web. Y además de esto, nosotros
[28:16] desde la web. Y además de esto, nosotros tenemos los triggers externos o
[28:18] tenemos los triggers externos o integraciones con aplicaciones. Este
[28:20] integraciones con aplicaciones. Este caso, en la mayoría de las veces va a
[28:23] caso, en la mayoría de las veces va a utilizar los webhook. Sin embargo, esta
[28:25] utilizar los webhook. Sin embargo, esta integración ya fue construida por algún
[28:28] integración ya fue construida por algún tercero o también pudo haber sida
[28:29] tercero o también pudo haber sida construida por el mismo equipo de N8N.
[28:32] construida por el mismo equipo de N8N. Entonces, un criterio rápido que
[28:33] Entonces, un criterio rápido que nosotros podemos aplicar cuando estamos
[28:35] nosotros podemos aplicar cuando estamos construyendo los flujos con N8N. Manual
[28:37] construyendo los flujos con N8N. Manual lo vamos a utilizar la mayoría de las
[28:39] lo vamos a utilizar la mayoría de las veces que nosotros estemos desarrollando
[28:41] veces que nosotros estemos desarrollando una aplicación, incluso si es que viene
[28:43] una aplicación, incluso si es que viene de una aplicación o webhook. Yo te voy a
[28:46] de una aplicación o webhook. Yo te voy a enseñar después cómo nosotros lo podemos
[28:48] enseñar después cómo nosotros lo podemos hacer de manera manual para que nuestro
[28:50] hacer de manera manual para que nuestro desarrollo sea más fácil. En el caso que
[28:52] desarrollo sea más fácil. En el caso que necesitamos que una tarea se ejecute a
[28:54] necesitamos que una tarea se ejecute a una hora determinada, nosotros
[28:56] una hora determinada, nosotros utilizamos Chrome. Y si queremos que
[28:58] utilizamos Chrome. Y si queremos que nuestro flujo reaccione a algo que
[29:00] nuestro flujo reaccione a algo que ocurra en internet o alguna otra
[29:03] ocurra en internet o alguna otra aplicación que nosotros tenemos, en ese
[29:04] aplicación que nosotros tenemos, en ese caso utilizamos los webhooks o las
[29:06] caso utilizamos los webhooks o las integraciones nativas de las
[29:08] integraciones nativas de las aplicaciones.
[29:13] El trigger manual puede parecer
[29:14] El trigger manual puede parecer sumamente simple, pero es un trigger
[29:16] sumamente simple, pero es un trigger clave si nosotros queremos desarrollar
[29:19] clave si nosotros queremos desarrollar integraciones o automatizaciones sin
[29:21] integraciones o automatizaciones sin romper nada. Si nosotros empezamos a
[29:23] romper nada. Si nosotros empezamos a desarrollar con sistemas externos, vamos
[29:25] desarrollar con sistemas externos, vamos a estar constantemente gatillando
[29:26] a estar constantemente gatillando eventos que no necesariamente queremos
[29:28] eventos que no necesariamente queremos que estos ocurran. En cambio, con un
[29:30] que estos ocurran. En cambio, con un trigger manual, nosotros vamos a poder
[29:32] trigger manual, nosotros vamos a poder iterar rápido sin necesidad de estar
[29:35] iterar rápido sin necesidad de estar conectados a sistemas reales, por lo
[29:36] conectados a sistemas reales, por lo cual nosotros deberíamos trabajar
[29:38] cual nosotros deberíamos trabajar siempre con el mismo flujo de trabajo.
[29:40] siempre con el mismo flujo de trabajo. Nosotros colocamos el trigger manual y
[29:42] Nosotros colocamos el trigger manual y empezamos a construir nuestro flujo.
[29:44] empezamos a construir nuestro flujo. Agregamos los nodos, revisamos cada uno
[29:46] Agregamos los nodos, revisamos cada uno de los nodos, revisamos el output o el
[29:49] de los nodos, revisamos el output o el resultado que estos generan. Y una vez
[29:51] resultado que estos generan. Y una vez que nosotros ajustamos y repetimos,
[29:53] que nosotros ajustamos y repetimos, ajustamos y repetimos y llegamos al
[29:55] ajustamos y repetimos y llegamos al resultado final, es en ese momento que
[29:57] resultado final, es en ese momento que nosotros utilizamos el webhook. Nosotros
[29:59] nosotros utilizamos el webhook. Nosotros cuando recibimos llamadas de los
[30:01] cuando recibimos llamadas de los webhooks por lo general lo vamos a
[30:02] webhooks por lo general lo vamos a recibir acá. Obviamente no dentro de
[30:04] recibir acá. Obviamente no dentro de este nodo, va a ser dentro del nodo de
[30:06] este nodo, va a ser dentro del nodo de webcook, que ya te lo voy a mostrar. Y
[30:08] webcook, que ya te lo voy a mostrar. Y va a tener un formato, por ejemplo, un
[30:09] va a tener un formato, por ejemplo, un JSON. Aquí nosotros vamos a tener una
[30:11] JSON. Aquí nosotros vamos a tener una propiedad de name, dos puntos, seguido
[30:13] propiedad de name, dos puntos, seguido de un nombre y podríamos tener más datos
[30:16] de un nombre y podríamos tener más datos como por ejemplo la edad, el apellido y
[30:18] como por ejemplo la edad, el apellido y así sucesivamente. Y lo que hacemos
[30:20] así sucesivamente. Y lo que hacemos nosotros para poder simular exactamente
[30:21] nosotros para poder simular exactamente este mismo comportamiento es que
[30:23] este mismo comportamiento es que agregamos un nodo de set y con este lo
[30:26] agregamos un nodo de set y con este lo que hacemos nosotros es setear los
[30:28] que hacemos nosotros es setear los campos que vamos a recibir de este
[30:30] campos que vamos a recibir de este webhook. Sin embargo, si nosotros nunca
[30:32] webhook. Sin embargo, si nosotros nunca hemos trabajado con un webhook y no
[30:35] hemos trabajado con un webhook y no tenemos idea cuáles van a ser los datos
[30:36] tenemos idea cuáles van a ser los datos ni cómo nos van a llegar, en ese caso
[30:38] ni cómo nos van a llegar, en ese caso puedes agregarlo solamente una vez, lo
[30:41] puedes agregarlo solamente una vez, lo ejecutas y puedes así revisar los datos
[30:43] ejecutas y puedes así revisar los datos que te llegaron. Pero una vez que tú
[30:45] que te llegaron. Pero una vez que tú hiciste eso, lo que quieres hacer es
[30:46] hiciste eso, lo que quieres hacer es copiar esa estructura y luego aplicarla
[30:49] copiar esa estructura y luego aplicarla acá mismo con un trigger manual. Esto va
[30:52] acá mismo con un trigger manual. Esto va a simplificar muchísimo tu proceso de
[30:54] a simplificar muchísimo tu proceso de desarrollo o cuando estés construyendo
[30:56] desarrollo o cuando estés construyendo nuevos workflow. ¿Por qué esto es
[30:57] nuevos workflow. ¿Por qué esto es importante? Si es que tú eres capaz de
[30:59] importante? Si es que tú eres capaz de iterar rápido, sin necesidad de depender
[31:02] iterar rápido, sin necesidad de depender de un servicio de tercero, sobre todo
[31:04] de un servicio de tercero, sobre todo para gatillar tus flujos de trabajo, vas
[31:06] para gatillar tus flujos de trabajo, vas a ir bien, vas a ir más rápido y vas a
[31:08] a ir bien, vas a ir más rápido y vas a tener mayor control. Y deberías migrar
[31:10] tener mayor control. Y deberías migrar al trigger real, en este caso a los
[31:12] al trigger real, en este caso a los webhook, solamente cuando hayas
[31:14] webhook, solamente cuando hayas terminado. Y esto también perfectamente
[31:17] terminado. Y esto también perfectamente aplica con los Chrom trigger, que son
[31:18] aplica con los Chrom trigger, que son los que vamos a ver a continuación.
[31:20] los que vamos a ver a continuación. [música]
[31:23] Si una tarea ocurre siempre a la misma
[31:25] Si una tarea ocurre siempre a la misma hora, hacerla manualmente es una pérdida
[31:28] hora, hacerla manualmente es una pérdida de tiempo. Crown Trigger automatiza este
[31:30] de tiempo. Crown Trigger automatiza este tipo de procesos con el calendario, o
[31:32] tipo de procesos con el calendario, o sea, que las puedes ejecutar a diario,
[31:34] sea, que las puedes ejecutar a diario, las puedes ejecutar una vez a la semana
[31:36] las puedes ejecutar una vez a la semana o también por intervalos de tiempo. Los
[31:37] o también por intervalos de tiempo. Los Chrome Triggers son la base para los
[31:39] Chrome Triggers son la base para los reportes periódicos, también para
[31:40] reportes periódicos, también para sincronización entre distintos sistemas
[31:42] sincronización entre distintos sistemas o mantenimientos recurrentes que tengas
[31:44] o mantenimientos recurrentes que tengas que hacerle a algún sistema. Para poder
[31:46] que hacerle a algún sistema. Para poder agregar un Chrome trigger tenemos que
[31:47] agregar un Chrome trigger tenemos que venir acá al área de nuestro workflow y
[31:49] venir acá al área de nuestro workflow y nos vamos a venir acá a donde se
[31:51] nos vamos a venir acá a donde se encuentra este símbolo de más. Aquí es
[31:53] encuentra este símbolo de más. Aquí es donde nosotros vamos a pinchar para
[31:55] donde nosotros vamos a pinchar para poder agregar un Chrome trigger.
[31:56] poder agregar un Chrome trigger. Pinchamos acá y acá buscamos Chrome.
[31:59] Pinchamos acá y acá buscamos Chrome. Cuando nosotros busquemos Chrome, esto
[32:00] Cuando nosotros busquemos Chrome, esto lo que va a hacer es mostrarnos schedule
[32:02] lo que va a hacer es mostrarnos schedule trigger o schedule trigger. Aquí
[32:04] trigger o schedule trigger. Aquí nosotros vamos a pinchar y acá tenemos
[32:06] nosotros vamos a pinchar y acá tenemos las distintas opciones dependiendo de
[32:08] las distintas opciones dependiendo de cada cuánto tiempo nosotros queremos que
[32:10] cada cuánto tiempo nosotros queremos que ute este trigger. Por defecto, este va a
[32:12] ute este trigger. Por defecto, este va a venir con la opción de que este se tiene
[32:14] venir con la opción de que este se tiene que ejecutar todos los días. también que
[32:16] que ejecutar todos los días. también que el intervalo de tiempo que tiene que
[32:18] el intervalo de tiempo que tiene que ocurrir es de un día, o sea, se va a
[32:20] ocurrir es de un día, o sea, se va a ejecutar hoy, también se va a ejecutar
[32:22] ejecutar hoy, también se va a ejecutar mañana y así sucesivamente. Después
[32:24] mañana y así sucesivamente. Después tenemos que especificar la hora a la
[32:26] tenemos que especificar la hora a la cual nosotros queremos que se ejecute y
[32:28] cual nosotros queremos que se ejecute y finalmente el minuto. Yo lo que voy a
[32:29] finalmente el minuto. Yo lo que voy a hacer acá es subir para poder mostrarte
[32:31] hacer acá es subir para poder mostrarte las distintas opciones. Nosotros podemos
[32:33] las distintas opciones. Nosotros podemos ejecutar unos crom cierta cantidad de
[32:35] ejecutar unos crom cierta cantidad de segundos, minutos, horas, días, semanas,
[32:38] segundos, minutos, horas, días, semanas, meses o incluso con un Chrome
[32:41] meses o incluso con un Chrome completamente personalizado. Aquí
[32:43] completamente personalizado. Aquí nosotros vamos a tener distintos casos
[32:44] nosotros vamos a tener distintos casos de uso. Por ejemplo, si nosotros lo que
[32:46] de uso. Por ejemplo, si nosotros lo que queremos hacer es que una inteligencia
[32:47] queremos hacer es que una inteligencia artificial revise nuestro correo
[32:49] artificial revise nuestro correo electrónico para que nos diga las
[32:51] electrónico para que nos diga las prioridades de la semana o incluso las
[32:53] prioridades de la semana o incluso las prioridades del día, ahí nosotros lo que
[32:55] prioridades del día, ahí nosotros lo que tenemos que hacer es seleccionar days o
[32:57] tenemos que hacer es seleccionar days o weeks. Y en el caso de Wix, nosotros
[32:59] weeks. Y en el caso de Wix, nosotros deberíamos seleccionar que esto no se un
[33:02] deberíamos seleccionar que esto no se un Sunday, sino que se ejecute, por
[33:04] Sunday, sino que se ejecute, por ejemplo, un día lunes. Aquí nosotros
[33:06] ejemplo, un día lunes. Aquí nosotros podemos indicar que se ejecute el lunes
[33:07] podemos indicar que se ejecute el lunes o también podríamos seleccionar más
[33:09] o también podríamos seleccionar más días. Yo lo voy a dejar solamente como
[33:10] días. Yo lo voy a dejar solamente como lunes. Y después nosotros también le
[33:12] lunes. Y después nosotros también le podríamos indicar la hora. Recuerda que
[33:14] podríamos indicar la hora. Recuerda que este servidor se va a encontrar con la
[33:16] este servidor se va a encontrar con la hora dependiendo de dónde lo hayas
[33:18] hora dependiendo de dónde lo hayas comprado. Aquí yo le voy a indicar que
[33:20] comprado. Aquí yo le voy a indicar que quiero que esto se cute, por ejemplo, a
[33:21] quiero que esto se cute, por ejemplo, a las 5 de la mañana. Y por supuesto que
[33:23] las 5 de la mañana. Y por supuesto que también podemos elegir un minuto en
[33:25] también podemos elegir un minuto en específico. Entonces, en lugar de que
[33:27] específico. Entonces, en lugar de que sea al minuto cer0, yo le podría decir
[33:29] sea al minuto cer0, yo le podría decir que sea a las 5:30. Si es que no
[33:31] que sea a las 5:30. Si es que no necesitamos ejecutarlo una vez a la
[33:32] necesitamos ejecutarlo una vez a la semana, podríamos perfectamente
[33:34] semana, podríamos perfectamente ejecutarlo al mes, como por ejemplo que
[33:36] ejecutarlo al mes, como por ejemplo que se ejecute el trigger para poder
[33:37] se ejecute el trigger para poder realizar los pagos de sueldos o que te
[33:38] realizar los pagos de sueldos o que te envíe a ti una notificación para indicar
[33:40] envíe a ti una notificación para indicar cuáles son las cuentas que tú tienes que
[33:41] cuáles son las cuentas que tú tienes que pagar. Sí, sucesivamente va a depender
[33:43] pagar. Sí, sucesivamente va a depender de tus procesos y los flujos que tengas
[33:46] de tus procesos y los flujos que tengas tú. O también podríamos querer ejecutar
[33:48] tú. O también podríamos querer ejecutar esto en un intervalo de horas. Yo
[33:49] esto en un intervalo de horas. Yo selecciono aquí horas. Yo puedo indicar
[33:51] selecciono aquí horas. Yo puedo indicar cada cuántas horas quiero que esto se
[33:53] cada cuántas horas quiero que esto se ejecute. Por defecto, aquí viene cada
[33:55] ejecute. Por defecto, aquí viene cada una hora, pero yo podría decir que
[33:56] una hora, pero yo podría decir que quiero que estocute, por ejemplo, cada
[33:57] quiero que estocute, por ejemplo, cada 12 horas. Lo importante que te tienes
[33:59] 12 horas. Lo importante que te tienes que llevar de este video con respecto a
[34:00] que llevar de este video con respecto a los chrom es que esta es la forma de
[34:02] los chrom es que esta es la forma de cómo tú vas a configurar cada cuánto
[34:05] cómo tú vas a configurar cada cuánto tiempo quieres que se ejecute tu
[34:06] tiempo quieres que se ejecute tu automatización. Y cuando te encuentres
[34:08] automatización. Y cuando te encuentres desarrollando tu flujo de trabajo, no
[34:11] desarrollando tu flujo de trabajo, no deberías usar un Chrome, deberías
[34:13] deberías usar un Chrome, deberías utilizar un trigger manual para que así
[34:15] utilizar un trigger manual para que así a medida que tú vayas realizando cambios
[34:17] a medida que tú vayas realizando cambios puedas ir ejecutándolo de manera manual.
[34:19] puedas ir ejecutándolo de manera manual. y no tengas que esperar a que haya
[34:21] y no tengas que esperar a que haya pasado el tiempo el cual tú configuraste
[34:24] pasado el tiempo el cual tú configuraste para poder ahí empezar a desarrollar y
[34:26] para poder ahí empezar a desarrollar y ver que efectivamente tu flujo de
[34:27] ver que efectivamente tu flujo de trabajo estaba bien. Recuerda, siempre
[34:29] trabajo estaba bien. Recuerda, siempre que estamos construyendo un workflow,
[34:31] que estamos construyendo un workflow, tienes que utilizar el trigger manual.
[34:36] Los web hook triggers sirven para poder
[34:38] Los web hook triggers sirven para poder recibir un evento en tiempo real desde
[34:41] recibir un evento en tiempo real desde una aplicación externa. Con los webhook
[34:43] una aplicación externa. Con los webhook tú puedes pasar desde un sistema lento a
[34:45] tú puedes pasar desde un sistema lento a uno rápido y que reacciona al instante.
[34:47] uno rápido y que reacciona al instante. Esto sucede porque cuando ocurre un
[34:49] Esto sucede porque cuando ocurre un evento N8N no espera a que haya pasado
[34:52] evento N8N no espera a que haya pasado cierto tiempo para ir a revisarlo. N8N
[34:54] cierto tiempo para ir a revisarlo. N8N lo recibe y actúa inmediatamente. Esto
[34:57] lo recibe y actúa inmediatamente. Esto lo que hace es que reduce la latencia y
[34:59] lo que hace es que reduce la latencia y hace que el sistema reaccione, pero
[35:01] hace que el sistema reaccione, pero reaccione de inmediato. Lo bueno es que
[35:03] reaccione de inmediato. Lo bueno es que los webhook triggers son sumamente
[35:05] los webhook triggers son sumamente flexibles, ya que utilizan los verbos de
[35:07] flexibles, ya que utilizan los verbos de http para que nosotros podamos
[35:09] http para que nosotros podamos interactuar con él. Vamos a agregar uno
[35:11] interactuar con él. Vamos a agregar uno inmediatamente. Nos vamos a venir acá al
[35:13] inmediatamente. Nos vamos a venir acá al símbolo de más y vamos a buscar webhook.
[35:16] símbolo de más y vamos a buscar webhook. Aquí nosotros tenemos dos opciones,
[35:18] Aquí nosotros tenemos dos opciones, tenemos webhook, start the workflow y
[35:20] tenemos webhook, start the workflow y también tenemos respond to webhook.
[35:22] también tenemos respond to webhook. Nosotros vamos a seleccionar el primero,
[35:23] Nosotros vamos a seleccionar el primero, que es el que nos interesa. Acá tenemos
[35:25] que es el que nos interesa. Acá tenemos dos opciones para poder empezar a
[35:27] dos opciones para poder empezar a implementar nuestros webhook. Tenemos
[35:28] implementar nuestros webhook. Tenemos test.
[35:31] test. Una vez que nosotros hayamos terminado
[35:33] Una vez que nosotros hayamos terminado nuestro webhook, tenemos que pasar a
[35:35] nuestro webhook, tenemos que pasar a utilizar este, pero en modo de
[35:36] utilizar este, pero en modo de desarrollo, nosotros siempre vamos a
[35:38] desarrollo, nosotros siempre vamos a querer utilizar este que aparece acá.
[35:40] querer utilizar este que aparece acá. Después nosotros le podemos indicar
[35:42] Después nosotros le podemos indicar distintas opciones, como por ejemplo el
[35:43] distintas opciones, como por ejemplo el verbo http que nosotros queremos
[35:45] verbo http que nosotros queremos utilizar. Como puedes ver, tenemos
[35:46] utilizar. Como puedes ver, tenemos delete, get, head, patch, post. Y yo voy
[35:49] delete, get, head, patch, post. Y yo voy a seleccionar get para poder ir
[35:51] a seleccionar get para poder ir construyendo sobre esto encima para que
[35:53] construyendo sobre esto encima para que veas cómo va reaccionando. Nosotros
[35:55] veas cómo va reaccionando. Nosotros podemos seleccionar distintos tipos de
[35:56] podemos seleccionar distintos tipos de autenticaciones. Podemos seleccionar
[35:58] autenticaciones. Podemos seleccionar basic, header, JWT o non. Yo lo voy a
[36:00] basic, header, JWT o non. Yo lo voy a dejar en non y podemos indicar también
[36:02] dejar en non y podemos indicar también el tipo de respuesta que va a tener
[36:05] el tipo de respuesta que va a tener nuestro webhook. Esto lo que va a hacer
[36:06] nuestro webhook. Esto lo que va a hacer es inmediato, apenas reciba la petición,
[36:09] es inmediato, apenas reciba la petición, va a responder inmediatamente con un
[36:11] va a responder inmediatamente con un estatus de okay. Lo otro que podría
[36:13] estatus de okay. Lo otro que podría hacer es esperar a que el nodo o la
[36:15] hacer es esperar a que el nodo o la automatización termine para ahí
[36:17] automatización termine para ahí finalmente entregarle el mensaje de
[36:19] finalmente entregarle el mensaje de éxito a la aplicación que se está
[36:21] éxito a la aplicación que se está entregando. También tenemos la opción de
[36:23] entregando. También tenemos la opción de using respond to webhook node y
[36:25] using respond to webhook node y finalmente streaming. Nosotros vamos a
[36:27] finalmente streaming. Nosotros vamos a utilizar en la mayoría del tiempo
[36:29] utilizar en la mayoría del tiempo inmediately porque la verdad es que va a
[36:31] inmediately porque la verdad es que va a depender de la aplicación si nosotros
[36:33] depender de la aplicación si nosotros queremos entregar una respuesta o no a
[36:35] queremos entregar una respuesta o no a esa aplicación en específico, pero
[36:37] esa aplicación en específico, pero nosotros no la vamos a utilizar. Después
[36:39] nosotros no la vamos a utilizar. Después de eso, nosotros tenemos distintas
[36:40] de eso, nosotros tenemos distintas opciones que podemos agregar. Tenemos,
[36:42] opciones que podemos agregar. Tenemos, por ejemplo, allow origine. ignorar a
[36:44] por ejemplo, allow origine. ignorar a los bots, aceptar estas peticiones
[36:46] los bots, aceptar estas peticiones solamente de alguna IP en particular.
[36:48] solamente de alguna IP en particular. Esto es sumamente bueno si es que van a
[36:50] Esto es sumamente bueno si es que van a ser integraciones desde servidores que
[36:52] ser integraciones desde servidores que tú ya conoces. Podemos no responder
[36:54] tú ya conoces. Podemos no responder absolutamente nada en el cuerpo o
[36:56] absolutamente nada en el cuerpo o podemos devolver un response code. Yo
[36:58] podemos devolver un response code. Yo voy a dejar esto tal cual se encuentra y
[37:00] voy a dejar esto tal cual se encuentra y lo que voy a hacer ahora es subir y voy
[37:02] lo que voy a hacer ahora es subir y voy a venir a pinchar acá donde dice list
[37:04] a venir a pinchar acá donde dice list for test event. Voy a pinchar acá y
[37:06] for test event. Voy a pinchar acá y luego de eso me [carraspeo] va a mostrar
[37:09] luego de eso me [carraspeo] va a mostrar esta opción que aparece acá. Yo lo que
[37:11] esta opción que aparece acá. Yo lo que voy a hacer es pinchar sobre esto. No
[37:13] voy a hacer es pinchar sobre esto. No voy a venir a copiarlo desde acá porque
[37:14] voy a venir a copiarlo desde acá porque acá yo podría tener la URL de
[37:16] acá yo podría tener la URL de producción, sino que yo voy a pinchar
[37:18] producción, sino que yo voy a pinchar esto. Y además, fíjense en esta opción.
[37:20] esto. Y además, fíjense en esta opción. Acá me está indicando stop listen. Esto
[37:22] Acá me está indicando stop listen. Esto quiere decir que este webhook se
[37:23] quiere decir que este webhook se encuentra escuchando ahora mismo. Cuando
[37:26] encuentra escuchando ahora mismo. Cuando yo llame a esta URL voy a poder ver el
[37:29] yo llame a esta URL voy a poder ver el resultado de esta llamada. Así que yo lo
[37:31] resultado de esta llamada. Así que yo lo que voy a hacer es abrir una nueva
[37:32] que voy a hacer es abrir una nueva pestaña, voy a pegar mi URL y voy a
[37:35] pestaña, voy a pegar mi URL y voy a presionar enter. Aquí nosotros
[37:36] presionar enter. Aquí nosotros deberíamos ver un mensaje como por
[37:38] deberíamos ver un mensaje como por ejemplo este que aparece acá, nos dice
[37:40] ejemplo este que aparece acá, nos dice message. Workflow was started. Esto
[37:42] message. Workflow was started. Esto quiere decir que nosotros hemos
[37:43] quiere decir que nosotros hemos gatillado el workflow para que este
[37:45] gatillado el workflow para que este empiece a trabajar. Y si nos devolvemos
[37:47] empiece a trabajar. Y si nos devolvemos acá a nuestro workflow de Posible lead,
[37:49] acá a nuestro workflow de Posible lead, vemos que este nodo ya no se encuentra
[37:51] vemos que este nodo ya no se encuentra escuchando. Y si nos venimos acá a la
[37:53] escuchando. Y si nos venimos acá a la derecha, vamos a poder ver el output
[37:55] derecha, vamos a poder ver el output donde nosotros tenemos desde dónde vino
[37:57] donde nosotros tenemos desde dónde vino la petición, un montón de headers, unas
[38:00] la petición, un montón de headers, unas cookies y bueno, finalmente todos los
[38:02] cookies y bueno, finalmente todos los datos que nosotros queramos pasar. Sin
[38:04] datos que nosotros queramos pasar. Sin embargo, si nosotros queremos pasar
[38:05] embargo, si nosotros queremos pasar valores a través de la URL con este
[38:07] valores a través de la URL con este método de get, lo que tenemos que hacer
[38:09] método de get, lo que tenemos que hacer es, bueno, poner a escuchar nuevamente
[38:12] es, bueno, poner a escuchar nuevamente nuestro webhook. Y ahora nosotros nos
[38:14] nuestro webhook. Y ahora nosotros nos podemos devolver aquí a la URL. Una vez
[38:16] podemos devolver aquí a la URL. Una vez que nosotros nos encontremos acá, yo lo
[38:18] que nosotros nos encontremos acá, yo lo que voy a hacer es un poquito de zoom
[38:20] que voy a hacer es un poquito de zoom para que veamos exactamente lo que voy a
[38:22] para que veamos exactamente lo que voy a hacer. Voy a colocar el símbolo de
[38:24] hacer. Voy a colocar el símbolo de pregunta y voy a colocar, por ejemplo,
[38:26] pregunta y voy a colocar, por ejemplo, nombre igual Nicolás. Acá yo voy a
[38:29] nombre igual Nicolás. Acá yo voy a presionar enter y vemos que hemos
[38:30] presionar enter y vemos que hemos recibido nuevamente el mismo mensaje.
[38:32] recibido nuevamente el mismo mensaje. Pero ahora si yo me voy a possible leads
[38:34] Pero ahora si yo me voy a possible leads y vengo aquí a donde aparece output,
[38:36] y vengo aquí a donde aparece output, nosotros deberíamos ver más abajo una
[38:39] nosotros deberíamos ver más abajo una opción que se llama query. Aquí dentro
[38:42] opción que se llama query. Aquí dentro de Query nosotros tenemos el valor de
[38:44] de Query nosotros tenemos el valor de nombre, el cual fue el que yo le pasé a
[38:46] nombre, el cual fue el que yo le pasé a través de la URL. Y seguido de eso
[38:48] través de la URL. Y seguido de eso nosotros tenemos el valor de Nicolás.
[38:50] nosotros tenemos el valor de Nicolás. ¿Por qué esto es importante? Porque
[38:51] ¿Por qué esto es importante? Porque nosotros podemos a través de la URL
[38:54] nosotros podemos a través de la URL pasarle datos a nuestros procesos o
[38:57] pasarle datos a nuestros procesos o workflows que hayamos creado dentro de
[38:58] workflows que hayamos creado dentro de N8N. Esto por supuesto que también lo
[39:00] N8N. Esto por supuesto que también lo podemos hacer a través de post
[39:02] podemos hacer a través de post dependiendo de cómo nosotros recibamos
[39:04] dependiendo de cómo nosotros recibamos los datos es como nosotros vamos a
[39:06] los datos es como nosotros vamos a configurar este webhook, porque podría
[39:08] configurar este webhook, porque podría ser que la aplicación que se integre con
[39:10] ser que la aplicación que se integre con este webhook ya tenga definido, por
[39:12] este webhook ya tenga definido, por ejemplo, que lo vamos a enviar a través
[39:14] ejemplo, que lo vamos a enviar a través de un post o podría ser que ya se
[39:15] de un post o podría ser que ya se encuentre definido para que este
[39:17] encuentre definido para que este funcione a través del verbo de get. Pero
[39:19] funcione a través del verbo de get. Pero si por el contrario somos nosotros
[39:21] si por el contrario somos nosotros quienes vamos a definir quién va a
[39:23] quienes vamos a definir quién va a llamar a este webhook, en ese caso
[39:25] llamar a este webhook, en ese caso nosotros lo que podemos hacer es colocar
[39:26] nosotros lo que podemos hacer es colocar la opción que a nosotros más nos
[39:27] la opción que a nosotros más nos convenga o que nos parezca más
[39:29] convenga o que nos parezca más apropiada. Por lo general, si nosotros
[39:31] apropiada. Por lo general, si nosotros queremos enviar muchos datos, utilizamos
[39:33] queremos enviar muchos datos, utilizamos post. Y si queremos enviar de repente
[39:35] post. Y si queremos enviar de repente solamente uno o dos datos sencillos y no
[39:37] solamente uno o dos datos sencillos y no sean muy largos, por lo general
[39:39] sean muy largos, por lo general utilizamos GET. Hay gente que tiende a
[39:41] utilizamos GET. Hay gente que tiende a pensar de que Post es más seguro porque
[39:43] pensar de que Post es más seguro porque los datos no aparecen en la URL, sin
[39:44] los datos no aparecen en la URL, sin embargo, eso no es cierto porque igual
[39:46] embargo, eso no es cierto porque igual pueden aparecer en la petición. Y si es
[39:48] pueden aparecer en la petición. Y si es que hay alguien que está escuchando la
[39:50] que hay alguien que está escuchando la petición, de todas maneras esos datos le
[39:52] petición, de todas maneras esos datos le van a aparecer a un hacker. Así que no
[39:54] van a aparecer a un hacker. Así que no utilices post porque este va a ser más
[39:56] utilices post porque este va a ser más seguro. Utilízalo porque hace sentido
[39:58] seguro. Utilízalo porque hace sentido para tu implementación.
[40:03] Ahora vamos a pasar a ver los triggers
[40:05] Ahora vamos a pasar a ver los triggers que pueden gatillar las aplicaciones que
[40:08] que pueden gatillar las aplicaciones que ya tengan su integración nativa dentro
[40:10] ya tengan su integración nativa dentro de N8N. Vamos a ir a mirarlas y también
[40:12] de N8N. Vamos a ir a mirarlas y también vamos a ver cómo las podemos encontrar.
[40:14] vamos a ver cómo las podemos encontrar. Nosotros vamos a pinchar acá nuevamente
[40:16] Nosotros vamos a pinchar acá nuevamente en el símbolo de más y si queremos ver
[40:18] en el símbolo de más y si queremos ver un listado de todos los triggers que
[40:20] un listado de todos los triggers que existen dentro de N8N, basta con que
[40:22] existen dentro de N8N, basta con que nosotros escribamos trigger. Luego acá
[40:25] nosotros escribamos trigger. Luego acá nosotros tenemos triggers, como por
[40:26] nosotros tenemos triggers, como por ejemplo, en el caso que exista un chat y
[40:29] ejemplo, en el caso que exista un chat y envíe un mensaje, también nosotros
[40:30] envíe un mensaje, también nosotros podemos gatillar un evento en el caso
[40:32] podemos gatillar un evento en el caso que el servidor genere este evento y
[40:35] que el servidor genere este evento y también tenemos integraciones como, por
[40:36] también tenemos integraciones como, por ejemplo, con toggle, con MQTT y si
[40:39] ejemplo, con toggle, con MQTT y si seguimos bajando deberíamos tener desde
[40:41] seguimos bajando deberíamos tener desde distintas aplicaciones. Acá nosotros
[40:43] distintas aplicaciones. Acá nosotros tenemos como por ejemplo Type Form,
[40:45] tenemos como por ejemplo Type Form, podemos recibir triggers a través de
[40:47] podemos recibir triggers a través de correos electrónicos, Jot Form, tenemos
[40:49] correos electrónicos, Jot Form, tenemos también de bitbacket, formio desde feits
[40:52] también de bitbacket, formio desde feits de RSS, también Facebook, también de
[40:54] de RSS, también Facebook, también de servidores MSP, Event Bright, Workable,
[40:58] servidores MSP, Event Bright, Workable, Formstock y yo creo que con esto ya te
[41:00] Formstock y yo creo que con esto ya te puedes hacer una idea de la cantidad de
[41:02] puedes hacer una idea de la cantidad de triggers que existen actualmente para
[41:04] triggers que existen actualmente para N8N. Sin embargo, esto no te va a
[41:07] N8N. Sin embargo, esto no te va a mostrar absolutamente todos los triggers
[41:09] mostrar absolutamente todos los triggers que existen para N8N. Por ejemplo,
[41:12] que existen para N8N. Por ejemplo, nosotros tenemos el caso de Gmail, donde
[41:14] nosotros tenemos el caso de Gmail, donde si nosotros buscamos acá Gmail, aquí ya
[41:16] si nosotros buscamos acá Gmail, aquí ya me aparece porque yo ya lo había buscado
[41:18] me aparece porque yo ya lo había buscado antes, nos debería aparecer este listado
[41:20] antes, nos debería aparecer este listado de acá donde nosotros tenemos actions y
[41:22] de acá donde nosotros tenemos actions y nos dice 26 acciones que nosotros
[41:24] nos dice 26 acciones que nosotros podemos ejecutar. Pero si nosotros
[41:25] podemos ejecutar. Pero si nosotros decidimos empezar a bajar, hacemos
[41:27] decidimos empezar a bajar, hacemos scroll hasta abajo y llegamos hasta el
[41:29] scroll hasta abajo y llegamos hasta el final, nos debería mostrar esta opción
[41:31] final, nos debería mostrar esta opción de triggers que a mí me ha parecida,
[41:33] de triggers que a mí me ha parecida, colapsada tal cual como está ahora. Pero
[41:35] colapsada tal cual como está ahora. Pero si yo lo pincho, yo puedo bajar y me va
[41:37] si yo lo pincho, yo puedo bajar y me va a aparecer on message received. Y si es
[41:39] a aparecer on message received. Y si es que yo pincho en esta, vamos a poder ver
[41:41] que yo pincho en esta, vamos a poder ver que primero tenemos que colocar las
[41:42] que primero tenemos que colocar las credenciales para la cuenta de correo
[41:44] credenciales para la cuenta de correo electrónico y también tenemos esta
[41:46] electrónico y también tenemos esta opción que dice Paul Times. P times
[41:47] opción que dice Paul Times. P times Times vendría siendo cada cuánto tiempo
[41:49] Times vendría siendo cada cuánto tiempo va a ir a revisar si es que ha llegado
[41:52] va a ir a revisar si es que ha llegado un correo electrónico nuevo. El evento
[41:53] un correo electrónico nuevo. El evento al cual nosotros nos estamos
[41:55] al cual nosotros nos estamos suscribiendo es cuando nosotros
[41:56] suscribiendo es cuando nosotros recibamos un mensaje. Como puedes ver,
[41:58] recibamos un mensaje. Como puedes ver, no hay más opciones. Esa vendría siendo
[42:00] no hay más opciones. Esa vendría siendo la única. Y luego más abajo nosotros
[42:02] la única. Y luego más abajo nosotros podemos colocar filtros. Por supuesto
[42:04] podemos colocar filtros. Por supuesto que si nosotros quisiéramos filtrar
[42:05] que si nosotros quisiéramos filtrar estos correos electrónicos para algo un
[42:07] estos correos electrónicos para algo un poco más robusto, como por ejemplo
[42:09] poco más robusto, como por ejemplo identificar si es que nos está
[42:11] identificar si es que nos está contactando alguna marca o identificar
[42:12] contactando alguna marca o identificar si nos está llegando alguna cuenta,
[42:14] si nos está llegando alguna cuenta, posiblemente la mejor opción es que
[42:16] posiblemente la mejor opción es que nosotros integremos este trigger luego
[42:18] nosotros integremos este trigger luego con algún ll como por ejemplo podría ser
[42:21] con algún ll como por ejemplo podría ser Chat GPT o incluso lls open source que
[42:24] Chat GPT o incluso lls open source que tú tengas instalado ejecutándose dentro
[42:26] tú tengas instalado ejecutándose dentro de un servidor. Pero con esto quiero que
[42:28] de un servidor. Pero con esto quiero que te lleves de este video que existen
[42:30] te lleves de este video que existen muchos, muchos triggers que tú puedes
[42:32] muchos, muchos triggers que tú puedes utilizar dentro de tus flujos y en el
[42:34] utilizar dentro de tus flujos y en el caso que estos no cuenten con trigger,
[42:37] caso que estos no cuenten con trigger, tú igual de todas maneras puedes
[42:38] tú igual de todas maneras puedes utilizar un webhook para poder disparar
[42:41] utilizar un webhook para poder disparar estos eventos. Hola mundo, espero que
[42:42] estos eventos. Hola mundo, espero que estés disfrutando mucho este curso.
[42:44] estés disfrutando mucho este curso. Quería recordarte que esta es solo la
[42:45] Quería recordarte que esta es solo la primera parte del curso completo de N8N
[42:47] primera parte del curso completo de N8N que encontrarás en la Academia Hal
[42:49] que encontrarás en la Academia Hal Mundo. Ahí podrás encontrar este curso,
[42:51] Mundo. Ahí podrás encontrar este curso, además de muchos otros que te van a
[42:52] además de muchos otros que te van a ayudar en tu carrera profesional, todos
[42:54] ayudar en tu carrera profesional, todos con certificado incluido. Si deseas
[42:55] con certificado incluido. Si deseas inscribirte, en la descripción de este
[42:57] inscribirte, en la descripción de este video te voy a dejar un cupón con un 20%
[42:59] video te voy a dejar un cupón con un 20% de descuento para que puedas
[43:00] de descuento para que puedas inscribirte, pero esa promoción estará
[43:02] inscribirte, pero esa promoción estará solo para las 100 primeras personas que
[43:03] solo para las 100 primeras personas que se inscriban con ese cupón. Ahora sí,
[43:05] se inscriban con ese cupón. Ahora sí, continuamos con el pulso.
[43:10] En la sección pasada nosotros estuvimos
[43:12] En la sección pasada nosotros estuvimos viendo los fundamentos de N8N, en
[43:15] viendo los fundamentos de N8N, en específico los triggers. En esa sección
[43:17] específico los triggers. En esa sección nosotros aprendimos que existen varios
[43:18] nosotros aprendimos que existen varios tipos de triggers. Tenemos los triggers
[43:20] tipos de triggers. Tenemos los triggers manuales, tenemos los triggers por
[43:22] manuales, tenemos los triggers por Chrome, tenemos los triggers por
[43:23] Chrome, tenemos los triggers por webhooks y también tenemos los triggers
[43:25] webhooks y también tenemos los triggers por aplicaciones. Estos se van a
[43:27] por aplicaciones. Estos se van a encargar de disparar todos los eventos y
[43:29] encargar de disparar todos los eventos y todos los workflows que nosotros vamos a
[43:31] todos los workflows que nosotros vamos a estar diseñando. Sin embargo, muchas
[43:33] estar diseñando. Sin embargo, muchas veces los datos que nosotros vamos a
[43:34] veces los datos que nosotros vamos a estar recibiendo, ya sea por algún
[43:37] estar recibiendo, ya sea por algún webhook de la aplicación o incluso datos
[43:39] webhook de la aplicación o incluso datos que nosotros vamos a ir a buscar a
[43:40] que nosotros vamos a ir a buscar a través de un trigger manual o de un
[43:42] través de un trigger manual o de un Chrome, estos pueden venir mal
[43:44] Chrome, estos pueden venir mal formateados o sucios y tenemos que
[43:46] formateados o sucios y tenemos que limpiarlos. Por lo que en esta sección
[43:48] limpiarlos. Por lo que en esta sección nosotros vamos a estar viendo
[43:49] nosotros vamos a estar viendo manipulación de datos y control de flujo
[43:52] manipulación de datos y control de flujo dentro de N8N.
[43:57] En la sección pasada nosotros ya vimos
[43:59] En la sección pasada nosotros ya vimos un nodo que se llama set. Este nosotros
[44:02] un nodo que se llama set. Este nosotros lo utilizamos para poder, como dice el
[44:04] lo utilizamos para poder, como dice el nombre, setear valores que después
[44:06] nombre, setear valores que después nosotros podemos ir recolectando,
[44:09] nosotros podemos ir recolectando, transformando y tomando acciones en base
[44:11] transformando y tomando acciones en base a esos datos. En este video vamos a
[44:13] a esos datos. En este video vamos a profundizar un poco más dentro del nodo
[44:16] profundizar un poco más dentro del nodo de set y además te voy a mostrar un
[44:17] de set y además te voy a mostrar un pequeño truco de cómo podemos utilizar
[44:19] pequeño truco de cómo podemos utilizar este nodo cuando estamos trabajando con
[44:22] este nodo cuando estamos trabajando con webhooks o también con integraciones de
[44:24] webhooks o también con integraciones de otras aplicaciones. Aquí, como puedes
[44:25] otras aplicaciones. Aquí, como puedes ver, yo tengo un workflow completamente
[44:28] ver, yo tengo un workflow completamente vacío y en este caso se llama flujo y
[44:31] vacío y en este caso se llama flujo y manipulación. Aquí lo que nosotros
[44:33] manipulación. Aquí lo que nosotros debemos hacer es agregar nuestro primer
[44:35] debemos hacer es agregar nuestro primer paso y vamos de manera intencional a
[44:38] paso y vamos de manera intencional a utilizar un webhook. Así que buscamos
[44:40] utilizar un webhook. Así que buscamos webhook y vamos a seleccionar este que
[44:42] webhook y vamos a seleccionar este que aparece acá. Pinchamos y acá nosotros
[44:45] aparece acá. Pinchamos y acá nosotros podemos cambiar el valor de get a post o
[44:47] podemos cambiar el valor de get a post o podemos dejarlo sencillamente en get. Yo
[44:49] podemos dejarlo sencillamente en get. Yo lo voy a dejar en get porque vamos a
[44:51] lo voy a dejar en get porque vamos a tener una sección dedicada a ver los
[44:53] tener una sección dedicada a ver los distintos verbos y cómo los podemos
[44:55] distintos verbos y cómo los podemos integrar dentro de nuestros workflow de
[44:57] integrar dentro de nuestros workflow de N8N. Así que yo lo voy a dejar acá y voy
[45:00] N8N. Así que yo lo voy a dejar acá y voy a empezar a escuchar por los eventos.
[45:02] a empezar a escuchar por los eventos. Ahora voy a tomar esta URL y la voy a
[45:04] Ahora voy a tomar esta URL y la voy a copiar. Voy a abrir una nueva pestaña y
[45:07] copiar. Voy a abrir una nueva pestaña y acá arriba vamos a hacer lo siguiente.
[45:09] acá arriba vamos a hacer lo siguiente. Vamos a colocar un símbolo de pregunta,
[45:12] Vamos a colocar un símbolo de pregunta, nombre, igual Nicolás. Y después de eso
[45:15] nombre, igual Nicolás. Y después de eso tenemos que colocar el símbolo de
[45:16] tenemos que colocar el símbolo de Ampersand. Y acá nosotros vamos a
[45:18] Ampersand. Y acá nosotros vamos a colocar apellido igual y vamos a colocar
[45:21] colocar apellido igual y vamos a colocar mi apellido. En este caso tú puedes
[45:23] mi apellido. En este caso tú puedes colocar tu apellido si así lo deseas.
[45:25] colocar tu apellido si así lo deseas. Después de esto vamos a presionar enter
[45:26] Después de esto vamos a presionar enter y ahora vemos que nuestro flujo ha
[45:29] y ahora vemos que nuestro flujo ha comenzado con éxito, así que nos podemos
[45:30] comenzado con éxito, así que nos podemos devolver aquí a N8N y aquí a la derecha
[45:34] devolver aquí a N8N y aquí a la derecha deberíamos ver esta propiedad de querer
[45:37] deberíamos ver esta propiedad de querer seguido del nombre, el valor que yo le
[45:39] seguido del nombre, el valor que yo le pasé y también apellido y el valor que
[45:41] pasé y también apellido y el valor que yo le pasé. Estos dos valores nosotros
[45:43] yo le pasé. Estos dos valores nosotros los vamos a utilizar a medida que
[45:45] los vamos a utilizar a medida que estemos desarrollando nuestro flujo con
[45:48] estemos desarrollando nuestro flujo con N8N. Así que lo que quiero hacer yo es
[45:51] N8N. Así que lo que quiero hacer yo es para no tener que estar llamando
[45:53] para no tener que estar llamando constantemente a este workflow, los voy
[45:55] constantemente a este workflow, los voy a dejar pineados o con un marcador o una
[45:58] a dejar pineados o con un marcador o una bandera de manera que no tenga que estar
[46:00] bandera de manera que no tenga que estar constantemente ejecutando este webhook.
[46:03] constantemente ejecutando este webhook. La forma que tenemos nosotros de poder
[46:04] La forma que tenemos nosotros de poder hacer esto mismo es de la siguiente.
[46:07] hacer esto mismo es de la siguiente. Vamos a subir hasta que podamos ver toda
[46:10] Vamos a subir hasta que podamos ver toda esta sección de output. Puede ser que a
[46:12] esta sección de output. Puede ser que a ti no te muestre lo que aparece aquí a
[46:14] ti no te muestre lo que aparece aquí a la derecha y te aparezca esta barra para
[46:17] la derecha y te aparezca esta barra para poder deslizar el contenido hacia la
[46:18] poder deslizar el contenido hacia la derecha. Así que eso es lo que vamos a
[46:20] derecha. Así que eso es lo que vamos a hacer. Vamos a deslizar este contenido
[46:21] hacer. Vamos a deslizar este contenido hacia la derecha y nos va a aparecer
[46:24] hacia la derecha y nos va a aparecer este pin de acá y nos dice pin data.
[46:26] este pin de acá y nos dice pin data. Vamos a pincharlo porque esto nosotros
[46:28] Vamos a pincharlo porque esto nosotros lo vamos a seguir utilizando. This data
[46:30] lo vamos a seguir utilizando. This data is pin for executions, lo que quiere
[46:32] is pin for executions, lo que quiere decir que no es necesario que nosotros
[46:34] decir que no es necesario que nosotros vayamos a ejecutar constantemente este
[46:37] vayamos a ejecutar constantemente este webhook y le pasemos los datos, porque
[46:39] webhook y le pasemos los datos, porque estos ya se van a quedar guardados acá.
[46:41] estos ya se van a quedar guardados acá. Ahora lo que nosotros podemos hacer es
[46:43] Ahora lo que nosotros podemos hacer es venir a pinchar acá dentro de este
[46:44] venir a pinchar acá dentro de este símbolo de más. Y ahora podemos buscar
[46:47] símbolo de más. Y ahora podemos buscar set edit fields set. Vamos a
[46:49] set edit fields set. Vamos a seleccionarlo. Y fíjate en lo que
[46:50] seleccionarlo. Y fíjate en lo que aparece acá a la izquierda. A la
[46:51] aparece acá a la izquierda. A la izquierda me van a aparecer todos los
[46:54] izquierda me van a aparecer todos los datos que me trajo este webhook. Tenemos
[46:56] datos que me trajo este webhook. Tenemos los headers, el host, user agent y todos
[46:59] los headers, el host, user agent y todos esos datos. Lo que a mí me interesa
[47:01] esos datos. Lo que a mí me interesa hacer en este caso es obtener nombre y
[47:04] hacer en este caso es obtener nombre y apellido. Y aquí vamos a seleccionar
[47:06] apellido. Y aquí vamos a seleccionar nombre y lo vamos a arrastrar y lo vamos
[47:08] nombre y lo vamos a arrastrar y lo vamos a pegar acá. Y vamos a hacer lo mismo
[47:10] a pegar acá. Y vamos a hacer lo mismo con apellido, lo vamos a tomar y lo
[47:12] con apellido, lo vamos a tomar y lo vamos a arrastrar acá. Ahora nosotros ya
[47:14] vamos a arrastrar acá. Ahora nosotros ya sabemos que ya tenemos nombre y tenemos
[47:16] sabemos que ya tenemos nombre y tenemos apellido. Ya no es necesario que
[47:18] apellido. Ya no es necesario que nosotros obtengamos todos estos datos,
[47:20] nosotros obtengamos todos estos datos, porque lo que van a hacer es que van a
[47:21] porque lo que van a hacer es que van a empezar a ensuciar un poco la ejecución.
[47:23] empezar a ensuciar un poco la ejecución. ¿Por qué? Porque vamos a ver todo eso y
[47:25] ¿Por qué? Porque vamos a ver todo eso y no es necesario que nosotros estemos
[47:26] no es necesario que nosotros estemos trabajando con todos estos datos. Ahora
[47:28] trabajando con todos estos datos. Ahora lo que nosotros podemos hacer es
[47:30] lo que nosotros podemos hacer es ejecutar este paso y podemos ver ahora
[47:32] ejecutar este paso y podemos ver ahora que nuestra salida contiene solamente
[47:35] que nuestra salida contiene solamente nombre y apellido. Esto es en el caso
[47:37] nombre y apellido. Esto es en el caso que nosotros decidamos hacerlo con
[47:39] que nosotros decidamos hacerlo con manual mapping. Nosotros esto por
[47:40] manual mapping. Nosotros esto por supuesto que también lo podemos cambiar
[47:42] supuesto que también lo podemos cambiar pinchando acá y luego seleccionamos
[47:44] pinchando acá y luego seleccionamos Jason. Aquí nosotros podemos hacer lo
[47:46] Jason. Aquí nosotros podemos hacer lo mismo. Podemos tomar la propiedad o
[47:48] mismo. Podemos tomar la propiedad o atributo de nombre y lo podemos soltar
[47:49] atributo de nombre y lo podemos soltar acá. Y aquí vemos que este empieza a
[47:52] acá. Y aquí vemos que este empieza a aparecer. Yo lo que voy a hacer es
[47:54] aparecer. Yo lo que voy a hacer es recortarlo y voy a decir que este campo
[47:56] recortarlo y voy a decir que este campo se va a llamar solamente nombre. y voy a
[47:58] se va a llamar solamente nombre. y voy a reemplazarlo por esto que aparece acá.
[48:00] reemplazarlo por esto que aparece acá. Vamos a hacer lo mismo con Myeld 2. Lo
[48:02] Vamos a hacer lo mismo con Myeld 2. Lo voy a cambiar por apellido y voy a
[48:04] voy a cambiar por apellido y voy a arrastrar esta cajita de apellido acá. Y
[48:06] arrastrar esta cajita de apellido acá. Y ahora nosotros vamos a poder ver que el
[48:08] ahora nosotros vamos a poder ver que el resultado va a ser esto. Podemos
[48:10] resultado va a ser esto. Podemos ejecutar ahora y ahora el output. Si nos
[48:12] ejecutar ahora y ahora el output. Si nos vamos a esquema nos va a decir nombre y
[48:15] vamos a esquema nos va a decir nombre y apellido, pero ahora ya no nos muestra
[48:17] apellido, pero ahora ya no nos muestra ese atributo de querer ahora nosotros
[48:19] ese atributo de querer ahora nosotros podemos cerrar acá y podríamos agregar
[48:22] podemos cerrar acá y podríamos agregar acá otro nodo que haga una cosa
[48:24] acá otro nodo que haga una cosa completamente diferente. Podemos venir a
[48:26] completamente diferente. Podemos venir a buscar, por ejemplo, un if o un switch.
[48:28] buscar, por ejemplo, un if o un switch. Lo vamos a agregar. Y ahora cuando
[48:30] Lo vamos a agregar. Y ahora cuando nosotros vayamos a ver los valores que
[48:32] nosotros vayamos a ver los valores que aparecen aquí a la izquierda, me van a
[48:33] aparecen aquí a la izquierda, me van a aparecer nombre y apellido. Si no me
[48:35] aparecer nombre y apellido. Si no me hubiese aparecido Query y dentro de
[48:37] hubiese aparecido Query y dentro de Query nombre y apellido. Como puedes
[48:39] Query nombre y apellido. Como puedes ver, Set es una herramienta sumamente
[48:41] ver, Set es una herramienta sumamente sencilla y pareciera que no hace mucho,
[48:43] sencilla y pareciera que no hace mucho, pero te va a ayudar a limpiar tu
[48:45] pero te va a ayudar a limpiar tu workflow para que este te muestre
[48:47] workflow para que este te muestre solamente los datos que a ti te
[48:49] solamente los datos que a ti te interesan y también te va a ayudar a
[48:50] interesan y también te va a ayudar a realizar estas transformaciones que
[48:51] realizar estas transformaciones que nosotros vimos para que estés trabajando
[48:53] nosotros vimos para que estés trabajando con datos más limpios y no te aparezca
[48:55] con datos más limpios y no te aparezca absolutamente todo, porque por lo
[48:56] absolutamente todo, porque por lo general nosotros no vamos a trabajar con
[48:58] general nosotros no vamos a trabajar con todos los datos, sino que solamente con
[49:00] todos los datos, sino que solamente con algunos en específico.
[49:05] Van a existir momentos donde nosotros
[49:07] Van a existir momentos donde nosotros vamos a recibir datos de dos fuentes
[49:09] vamos a recibir datos de dos fuentes distintas. Esto podría ser, por ejemplo,
[49:11] distintas. Esto podría ser, por ejemplo, que nosotros hagamos un llamado a dos
[49:13] que nosotros hagamos un llamado a dos APIs. Podría ser que nosotros estemos
[49:15] APIs. Podría ser que nosotros estemos recibiendo los datos de un correo
[49:16] recibiendo los datos de un correo electrónico y también que lo estemos
[49:18] electrónico y también que lo estemos recibiendo a través de un webhook. Pero
[49:20] recibiendo a través de un webhook. Pero independiente de la manera que esto
[49:21] independiente de la manera que esto llegase a ocurrir, cuando ocurre esta
[49:23] llegase a ocurrir, cuando ocurre esta situación, nosotros vamos a tener que
[49:24] situación, nosotros vamos a tener que fusionar algunas veces estas fuentes.
[49:27] fusionar algunas veces estas fuentes. Vamos a ver cómo nosotros podemos hacer
[49:28] Vamos a ver cómo nosotros podemos hacer esto mismo. Como puedes ver aquí, yo
[49:29] esto mismo. Como puedes ver aquí, yo actualicé un poco el flujo para no
[49:31] actualicé un poco el flujo para no aburrirte. Acá nosotros tenemos una
[49:32] aburrirte. Acá nosotros tenemos una manera de poder ejecutar el workflow
[49:34] manera de poder ejecutar el workflow manual. Si voy a editar el set que tengo
[49:37] manual. Si voy a editar el set que tengo acá arriba, vamos a ver que tenemos dos
[49:39] acá arriba, vamos a ver que tenemos dos campos. Tenemos uno de ID con el valor
[49:41] campos. Tenemos uno de ID con el valor de uno y después tenemos nombre con el
[49:44] de uno y después tenemos nombre con el valor de Nicoo. Si vamos a revisar ahora
[49:46] valor de Nicoo. Si vamos a revisar ahora el segundo, voy a pincharlo dos veces.
[49:48] el segundo, voy a pincharlo dos veces. Vemos que acá yo también tengo el campo
[49:50] Vemos que acá yo también tengo el campo de ID con el valor de uno y después yo
[49:52] de ID con el valor de uno y después yo tengo apellido con el valor de Shurman.
[49:55] tengo apellido con el valor de Shurman. O sea, yo lo que estoy teniendo en este
[49:57] O sea, yo lo que estoy teniendo en este momento son dos objetos que contienen un
[50:00] momento son dos objetos que contienen un ID de uno en común, pero uno tiene la
[50:02] ID de uno en común, pero uno tiene la propiedad de nombre y otro tiene la
[50:04] propiedad de nombre y otro tiene la propiedad de apellido. Entonces, lo que
[50:06] propiedad de apellido. Entonces, lo que nosotros queremos hacer es fusionar
[50:08] nosotros queremos hacer es fusionar estos elementos, los vamos a mezclar.
[50:10] estos elementos, los vamos a mezclar. Entonces, para eso, nosotros vamos a
[50:12] Entonces, para eso, nosotros vamos a venir acá, vamos a agregar un nuevo nodo
[50:14] venir acá, vamos a agregar un nuevo nodo que se llama merch y lo vamos a agregar.
[50:17] que se llama merch y lo vamos a agregar. Yo no voy a hacer nada todavía con esto,
[50:18] Yo no voy a hacer nada todavía con esto, lo voy a cerrar porque quiero dejarlo
[50:20] lo voy a cerrar porque quiero dejarlo bien configurado. Así que si nosotros
[50:22] bien configurado. Así que si nosotros quisiéramos eliminar las conexiones
[50:24] quisiéramos eliminar las conexiones entre distintos nodos, nosotros podemos
[50:26] entre distintos nodos, nosotros podemos venir a pinchar acá en este símbolo del
[50:29] venir a pinchar acá en este símbolo del tacho de basura. Pinchamos acá y ahí lo
[50:31] tacho de basura. Pinchamos acá y ahí lo podemos eliminar. Y yo lo que voy a
[50:32] podemos eliminar. Y yo lo que voy a hacer es dejarlo más o menos alineado
[50:34] hacer es dejarlo más o menos alineado para que quede en el centro. Ahora, para
[50:37] para que quede en el centro. Ahora, para yo poder unir este de aquí y este de
[50:39] yo poder unir este de aquí y este de aquí, yo lo que puedo hacer es sujetar
[50:41] aquí, yo lo que puedo hacer es sujetar este circulito y luego venir a unirlo
[50:44] este circulito y luego venir a unirlo acá. y tengo que hacerlo para los dos
[50:46] acá. y tengo que hacerlo para los dos casos. Así que vamos a hacer eso mismo.
[50:48] casos. Así que vamos a hacer eso mismo. Voy a venir acá, pincho y lo arrastro
[50:50] Voy a venir acá, pincho y lo arrastro hasta acá. Y voy a hacer lo mismo con
[50:52] hasta acá. Y voy a hacer lo mismo con este. Pincho y arrastro hasta acá. Ahora
[50:55] este. Pincho y arrastro hasta acá. Ahora lo que nosotros podemos hacer, si es que
[50:56] lo que nosotros podemos hacer, si es que tú todavía no has ejecutado el workflow,
[50:59] tú todavía no has ejecutado el workflow, puedes venir acá donde dice execute
[51:01] puedes venir acá donde dice execute workflow para poder empezar a ejecutar
[51:03] workflow para poder empezar a ejecutar todos los pasos. Así que pinchamos acá.
[51:04] todos los pasos. Así que pinchamos acá. Como puedes ver, se ejecutó este y
[51:06] Como puedes ver, se ejecutó este y también me está indicando de que este
[51:07] también me está indicando de que este tiene un éxito, este también. Pero vamos
[51:09] tiene un éxito, este también. Pero vamos a ver qué fue lo que ocurrió con Merch.
[51:11] a ver qué fue lo que ocurrió con Merch. Vamos a pinchar acá dos veces. Y fíjate
[51:13] Vamos a pinchar acá dos veces. Y fíjate en lo que está pasando acá. Me está
[51:14] en lo que está pasando acá. Me está mostrando los dos elementos, uno y
[51:17] mostrando los dos elementos, uno y después el otro, y los dos los ha metido
[51:20] después el otro, y los dos los ha metido dentro de una raíz. Entonces, esto me va
[51:23] dentro de una raíz. Entonces, esto me va a servir mucho cuando yo tengo datos de
[51:24] a servir mucho cuando yo tengo datos de dos fuentes distintas que puede ser que
[51:26] dos fuentes distintas que puede ser que tengan o no la misma estructura, pero yo
[51:29] tengan o no la misma estructura, pero yo lo quiera manejar todo dentro del mismo
[51:31] lo quiera manejar todo dentro del mismo arrey. Ahora, no siempre nosotros vamos
[51:33] arrey. Ahora, no siempre nosotros vamos a querer hacer eso, van a haber algunas
[51:35] a querer hacer eso, van a haber algunas veces donde nosotros los vamos a querer
[51:36] veces donde nosotros los vamos a querer fusionar, pero en base a una propiedad.
[51:39] fusionar, pero en base a una propiedad. En este caso, como puedes ver, yo tengo
[51:41] En este caso, como puedes ver, yo tengo la propiedad de ID con el primer objeto
[51:44] la propiedad de ID con el primer objeto y también con el segundo objeto. Ambos
[51:47] y también con el segundo objeto. Ambos tienen la propiedad de ID y tienen el
[51:49] tienen la propiedad de ID y tienen el valor de uno. Nosotros podríamos
[51:50] valor de uno. Nosotros podríamos presumir que son exactamente el mismo
[51:52] presumir que son exactamente el mismo elemento, así que lo que vamos a hacer
[51:53] elemento, así que lo que vamos a hacer es combinarlo con el objetivo de tener
[51:55] es combinarlo con el objetivo de tener un elemento con la propiedad de ID,
[51:58] un elemento con la propiedad de ID, nombre y finalmente apellido. Para que
[52:00] nombre y finalmente apellido. Para que nosotros podamos hacer esto mismo que yo
[52:02] nosotros podamos hacer esto mismo que yo te acabo de decir, vamos a cambiar el
[52:04] te acabo de decir, vamos a cambiar el modo de append, lo vamos a cambiar a
[52:06] modo de append, lo vamos a cambiar a combine. En el caso de que sepas SQL o
[52:09] combine. En el caso de que sepas SQL o seas un usuario más avanzado, puedes
[52:10] seas un usuario más avanzado, puedes venir acá a seleccionar SQL Query.
[52:12] venir acá a seleccionar SQL Query. Nosotros vamos a venir acá con combine.
[52:14] Nosotros vamos a venir acá con combine. Acá tenemos la opción de matching
[52:16] Acá tenemos la opción de matching fields, pero también podrías combinarlos
[52:18] fields, pero también podrías combinarlos por su posición o también hacer un cross
[52:20] por su posición o también hacer un cross joint que finalmente te va a juntar todo
[52:22] joint que finalmente te va a juntar todo con todo. Yo lo voy a dejar en matching
[52:23] con todo. Yo lo voy a dejar en matching fields y nosotros podemos seleccionar
[52:26] fields y nosotros podemos seleccionar también la opción de poder unir estos
[52:28] también la opción de poder unir estos elementos, pero presumiendo que los
[52:30] elementos, pero presumiendo que los campos podrían venir con nombres
[52:31] campos podrían venir con nombres distintos. Podría ser que uno venga con
[52:33] distintos. Podría ser que uno venga con ID y el otro se llame guion bajo ID. en
[52:35] ID y el otro se llame guion bajo ID. en el caso que estés trabajando con dos
[52:36] el caso que estés trabajando con dos bases de datos distintas, pero
[52:38] bases de datos distintas, pero afortunadamente como nosotros definimos
[52:39] afortunadamente como nosotros definimos esto, vienen con exactamente el mismo
[52:42] esto, vienen con exactamente el mismo nombre. Así que nosotros acá vamos a
[52:44] nombre. Así que nosotros acá vamos a escribir ID y una vez que hayamos
[52:46] escribir ID y una vez que hayamos escrito ID, nosotros podemos venir acá a
[52:49] escrito ID, nosotros podemos venir acá a execute step y ahora podemos ver que
[52:51] execute step y ahora podemos ver que nuestro objeto se ha fusionado y
[52:53] nuestro objeto se ha fusionado y contiene finalmente las tres
[52:55] contiene finalmente las tres propiedades. Se ha combinado por la
[52:56] propiedades. Se ha combinado por la propiedad de ID y dejó nombre y
[52:58] propiedad de ID y dejó nombre y apellido, pero todo esto dentro del
[53:00] apellido, pero todo esto dentro del mismo objeto. [música]
[53:05] En nuestros flujos de N8N, no todos los
[53:07] En nuestros flujos de N8N, no todos los elementos tienen que seguir exactamente
[53:09] elementos tienen que seguir exactamente por el mismo camino. Algunos vamos a
[53:11] por el mismo camino. Algunos vamos a querer ignorarlos o vamos a querer que
[53:13] querer ignorarlos o vamos a querer que tomen una decisión completamente
[53:14] tomen una decisión completamente distinta. Vamos a ver cómo podemos hacer
[53:16] distinta. Vamos a ver cómo podemos hacer eso. Nuevamente acá dentro del flujo
[53:18] eso. Nuevamente acá dentro del flujo vemos que tenemos dos nodos de edit.
[53:21] vemos que tenemos dos nodos de edit. Vamos a revisarlos para que veamos
[53:22] Vamos a revisarlos para que veamos exactamente qué es lo que hacen. Tenemos
[53:24] exactamente qué es lo que hacen. Tenemos un campo de ID seguido de un campo de
[53:26] un campo de ID seguido de un campo de nombre y después un campo de edad. Este
[53:29] nombre y después un campo de edad. Este campo de edad es un número y tiene el
[53:32] campo de edad es un número y tiene el valor de 22. Y si vamos a revisar el
[53:34] valor de 22. Y si vamos a revisar el otro campo de nuestro nodo de set, vamos
[53:37] otro campo de nuestro nodo de set, vamos a ver que también tiene un ID, nombre y
[53:39] a ver que también tiene un ID, nombre y también una edad. Luego vamos a ver
[53:41] también una edad. Luego vamos a ver nuestro nodo de merch y acá nosotros
[53:43] nuestro nodo de merch y acá nosotros vemos que tenemos los objetos de ID,
[53:46] vemos que tenemos los objetos de ID, nombre, edad. Tenemos ID 1, nombre Nico,
[53:48] nombre, edad. Tenemos ID 1, nombre Nico, edad 22. ID 2 nombre Felipe, edad 15.
[53:51] edad 22. ID 2 nombre Felipe, edad 15. Con esto nosotros ya podemos empezar a
[53:53] Con esto nosotros ya podemos empezar a tomar decisiones. Ahora, si nosotros
[53:55] tomar decisiones. Ahora, si nosotros queremos tomar decisiones dentro de
[53:57] queremos tomar decisiones dentro de nuestros workflow, vamos a tener que
[53:59] nuestros workflow, vamos a tener que agregar un nuevo nodo, el cual es el de
[54:01] agregar un nuevo nodo, el cual es el de if. If nosotros lo podemos utilizar para
[54:03] if. If nosotros lo podemos utilizar para un único elemento o también lo podemos
[54:05] un único elemento o también lo podemos utilizar para un listado de elementos.
[54:07] utilizar para un listado de elementos. Así que yo voy a pinchar acá en if para
[54:09] Así que yo voy a pinchar acá en if para que lo agregue. Y acá nosotros lo que
[54:11] que lo agregue. Y acá nosotros lo que podemos hacer es tomar alguno de estos
[54:13] podemos hacer es tomar alguno de estos campos para poder realizar la
[54:15] campos para poder realizar la evaluación. Obviamente no voy a
[54:16] evaluación. Obviamente no voy a seleccionar el de nombre, yo voy a
[54:18] seleccionar el de nombre, yo voy a seleccionar el de edad porque voy a
[54:19] seleccionar el de edad porque voy a querer tener un flujo para mayores de
[54:21] querer tener un flujo para mayores de edad y otro que sea para menores de
[54:23] edad y otro que sea para menores de edad. Entonces ahora nosotros podemos
[54:26] edad. Entonces ahora nosotros podemos preguntar si es que la edad es igual a,
[54:29] preguntar si es que la edad es igual a, pero yo no lo voy a hacer así. Yo voy a
[54:31] pero yo no lo voy a hacer así. Yo voy a preguntar si es que es greater than or
[54:33] preguntar si es que es greater than or equal to que vendría siendo mayor o
[54:34] equal to que vendría siendo mayor o igual a. Entonces, de esta manera
[54:36] igual a. Entonces, de esta manera nosotros podemos colocar aquí 18 y
[54:38] nosotros podemos colocar aquí 18 y también me va a incluir este valor de 18
[54:41] también me va a incluir este valor de 18 en la evaluación. Entonces, nosotros
[54:43] en la evaluación. Entonces, nosotros ahora podemos ejecutar este paso y acá
[54:45] ahora podemos ejecutar este paso y acá nosotros tenemos el output. En este
[54:47] nosotros tenemos el output. En este caso, nuestro output, vamos a agrandar
[54:50] caso, nuestro output, vamos a agrandar un poco acá, tiene dos posibles caminos.
[54:52] un poco acá, tiene dos posibles caminos. Tenemos el true branch y también tenemos
[54:53] Tenemos el true branch y también tenemos el false branch. En el caso del true
[54:55] el false branch. En el caso del true branch a este usuario que tiene 22 años,
[54:57] branch a este usuario que tiene 22 años, mayor de 18 años. Y después tenemos
[54:59] mayor de 18 años. Y después tenemos también nuestra false branch, que acá
[55:01] también nuestra false branch, que acá tenemos también a otro usuario, pero que
[55:02] tenemos también a otro usuario, pero que este es menor de edad. Entonces, con
[55:04] este es menor de edad. Entonces, con esto nosotros ya podemos empezar a tomar
[55:06] esto nosotros ya podemos empezar a tomar decisiones con qué es lo que vamos a
[55:08] decisiones con qué es lo que vamos a hacer con cada uno de estos elementos.
[55:10] hacer con cada uno de estos elementos. Acá también después, justamente después
[55:11] Acá también después, justamente después del nodo, podemos ver que aparece este
[55:14] del nodo, podemos ver que aparece este pequeño texto que nos está diciendo
[55:17] pequeño texto que nos está diciendo true. Entonces, todos los usuarios
[55:18] true. Entonces, todos los usuarios mayores de edad deberíamos conectarlos a
[55:20] mayores de edad deberíamos conectarlos a este nodo. Y acá abajo tenemos este
[55:22] este nodo. Y acá abajo tenemos este texto que nos dice false. Entonces,
[55:24] texto que nos dice false. Entonces, todos los usuarios que sean menores de
[55:25] todos los usuarios que sean menores de edad deberíamos conectarlos con este
[55:27] edad deberíamos conectarlos con este símbolo de más. Y ahora te voy a
[55:29] símbolo de más. Y ahora te voy a comentar el error más común y es empezar
[55:32] comentar el error más común y es empezar a comparar los números con strings. ¿Qué
[55:35] a comparar los números con strings. ¿Qué quiere decir esto? Si nosotros nos
[55:36] quiere decir esto? Si nosotros nos venimos aquí a edit fields y en lugar de
[55:38] venimos aquí a edit fields y en lugar de yo colocarle la edad como un number, se
[55:41] yo colocarle la edad como un number, se la dejo como un string. Vamos a hacer
[55:44] la dejo como un string. Vamos a hacer exactamente lo mismo con el anterior.
[55:46] exactamente lo mismo con el anterior. Vamos a cerrar acá y me voy aquí a este
[55:48] Vamos a cerrar acá y me voy aquí a este edit fields. Aquí yo tengo number, lo
[55:50] edit fields. Aquí yo tengo number, lo voy a cambiar por string. Vuelvo a
[55:51] voy a cambiar por string. Vuelvo a ejecutar este paso, guardo. Vamos a
[55:53] ejecutar este paso, guardo. Vamos a ejecutar el workflow completo ahora para
[55:55] ejecutar el workflow completo ahora para que veamos qué es lo que ocurre. Aquí
[55:57] que veamos qué es lo que ocurre. Aquí vemos que este if me ha arrojado un
[55:59] vemos que este if me ha arrojado un error y si nosotros vemos aquí el
[56:00] error y si nosotros vemos aquí el detalle, me va a decir que tenemos un
[56:03] detalle, me va a decir que tenemos un tipo equivocado. 22 es un string, pero
[56:06] tipo equivocado. 22 es un string, pero se estaba esperando un número. Así que,
[56:09] se estaba esperando un número. Así que, chicos, muy importante que cuando
[56:11] chicos, muy importante que cuando nosotros estemos trabajando, sobre todo
[56:12] nosotros estemos trabajando, sobre todo con el nodo de if, y si vamos a hacer
[56:14] con el nodo de if, y si vamos a hacer comparaciones con números, tenemos que
[56:16] comparaciones con números, tenemos que asegurarnos que el tipo de dato que
[56:18] asegurarnos que el tipo de dato que nosotros estamos evaluando sea de tipo
[56:20] nosotros estamos evaluando sea de tipo número. Si lo intentamos hacer con un
[56:22] número. Si lo intentamos hacer con un string, nos va a mostrar este error que
[56:24] string, nos va a mostrar este error que nosotros acabamos de ver.
[56:26] nosotros acabamos de ver. [música]
[56:29] A veces nosotros vamos a querer tomar
[56:30] A veces nosotros vamos a querer tomar decisiones dependiendo de algún tipo o
[56:33] decisiones dependiendo de algún tipo o categoría o clasificación de lo que
[56:34] categoría o clasificación de lo que nosotros estemos recibiendo. Por
[56:36] nosotros estemos recibiendo. Por ejemplo, de productos. Nosotros
[56:37] ejemplo, de productos. Nosotros podríamos estar recibiendo un listado de
[56:39] podríamos estar recibiendo un listado de teléfonos celulares, de computadores y
[56:41] teléfonos celulares, de computadores y dependiendo del tipo de dispositivo,
[56:43] dependiendo del tipo de dispositivo, nosotros vamos a querer tomar distintas
[56:45] nosotros vamos a querer tomar distintas decisiones. Lo mismo si nos están
[56:46] decisiones. Lo mismo si nos están contactando por soporte. Podría ser que
[56:48] contactando por soporte. Podría ser que a veces nos estén contactando para poder
[56:50] a veces nos estén contactando para poder felicitarnos, para poder generarnos
[56:51] felicitarnos, para poder generarnos algún reclamo o porque el usuario
[56:53] algún reclamo o porque el usuario necesita algún tipo de ayuda. Esto
[56:55] necesita algún tipo de ayuda. Esto podría ser, por ejemplo, a través de
[56:56] podría ser, por ejemplo, a través de correos electrónicos, a través de algún
[56:58] correos electrónicos, a través de algún chat o de cualquier sistema donde
[57:00] chat o de cualquier sistema donde nosotros podamos identificar si es que
[57:02] nosotros podamos identificar si es que esto es de tipo soporte, de tipo
[57:03] esto es de tipo soporte, de tipo feedback o de lo que sea. Los LLM son
[57:06] feedback o de lo que sea. Los LLM son muy buenos para poder analizar el
[57:08] muy buenos para poder analizar el sentimiento que tienen los correos
[57:10] sentimiento que tienen los correos electrónicos, que tienen los mensajes de
[57:11] electrónicos, que tienen los mensajes de los chat y así poder entregarnos un
[57:13] los chat y así poder entregarnos un listado con los distintos tipos que esto
[57:15] listado con los distintos tipos que esto tienen. Entonces, podría ser que
[57:17] tienen. Entonces, podría ser que nosotros estemos trabajando con un LLM,
[57:19] nosotros estemos trabajando con un LLM, podría ser Chat GPT, podría ser olama,
[57:22] podría ser Chat GPT, podría ser olama, podría ser Cloud o cualquiera. Y este
[57:24] podría ser Cloud o cualquiera. Y este nos va a entregar a nosotros un listado
[57:26] nos va a entregar a nosotros un listado de cosas. Estas cosas podrían ser
[57:28] de cosas. Estas cosas podrían ser tickets de soporte y estos van a tener
[57:30] tickets de soporte y estos van a tener un tipo. Dentro de este tipo, nosotros
[57:32] un tipo. Dentro de este tipo, nosotros podríamos tener soporte, podríamos tener
[57:35] podríamos tener soporte, podríamos tener feedback, podríamos tener también
[57:37] feedback, podríamos tener también mensajes de felicitaciones y un enorme
[57:39] mensajes de felicitaciones y un enorme listado sin fin. Entonces nosotros
[57:42] listado sin fin. Entonces nosotros podríamos querer tomar cada uno de estos
[57:44] podríamos querer tomar cada uno de estos elementos y realizar una acción distinta
[57:46] elementos y realizar una acción distinta dependiendo del tipo que sea esto. Y eso
[57:49] dependiendo del tipo que sea esto. Y eso nosotros lo podemos hacer con el nodo de
[57:51] nosotros lo podemos hacer con el nodo de switch. Aquí yo lo que acabo de hacer es
[57:53] switch. Aquí yo lo que acabo de hacer es cambiar un poco la implementación que
[57:54] cambiar un poco la implementación que teníamos antes. Nosotros seguimos
[57:56] teníamos antes. Nosotros seguimos teniendo este trigger completamente
[57:58] teniendo este trigger completamente manual y después de esto tenemos otros
[58:01] manual y después de esto tenemos otros tres nodos, los cuales son de tipo set.
[58:04] tres nodos, los cuales son de tipo set. Vamos a ir a mirarlos inmediatamente,
[58:06] Vamos a ir a mirarlos inmediatamente, pero antes de eso, quiero que te fijes
[58:07] pero antes de eso, quiero que te fijes en esto. Aquí yo sigo teniendo mi nodo
[58:09] en esto. Aquí yo sigo teniendo mi nodo de merch, pero este en lugar de estar
[58:11] de merch, pero este en lugar de estar recibiendo dos inputs, está recibiendo
[58:13] recibiendo dos inputs, está recibiendo tres. La manera que nosotros tenemos
[58:15] tres. La manera que nosotros tenemos para poder cambiar esto mismo es
[58:17] para poder cambiar esto mismo es pinchamos en este y acá donde dice
[58:20] pinchamos en este y acá donde dice number of inputs lo cambiamos a tres.
[58:22] number of inputs lo cambiamos a tres. Antes se encontraba en dos y ahora se
[58:23] Antes se encontraba en dos y ahora se encuentra en tres. Ahora yo lo que voy a
[58:25] encuentra en tres. Ahora yo lo que voy a hacer es revisar cada uno de estos
[58:27] hacer es revisar cada uno de estos elementos para que veamos qué es lo que
[58:28] elementos para que veamos qué es lo que contiene. Acá nosotros tenemos un campo
[58:30] contiene. Acá nosotros tenemos un campo de ID, nombre y tipo. Tenemos ID 1,
[58:33] de ID, nombre y tipo. Tenemos ID 1, nombre NICO y tipo soporte. Después acá
[58:35] nombre NICO y tipo soporte. Después acá abajo nosotros tenemos otro que tiene
[58:36] abajo nosotros tenemos otro que tiene ID2, nombre Felipe, tipo feedback. Y si
[58:39] ID2, nombre Felipe, tipo feedback. Y si vamos a revisar el último, adivina qué
[58:41] vamos a revisar el último, adivina qué es lo que vamos a tener. Así es, vamos a
[58:43] es lo que vamos a tener. Así es, vamos a tener ID3, nombre, chanchito y tipo
[58:45] tener ID3, nombre, chanchito y tipo soporte. Entonces, nosotros vamos a
[58:47] soporte. Entonces, nosotros vamos a tener acá un elemento que va a ser de
[58:49] tener acá un elemento que va a ser de tipo feedback. Sin embargo, los otros
[58:51] tipo feedback. Sin embargo, los otros dos, como puedes ver acá, son de tipo
[58:53] dos, como puedes ver acá, son de tipo soporte. Entonces, lo que nosotros vamos
[58:55] soporte. Entonces, lo que nosotros vamos a querer hacer es poder identificar qué
[58:57] a querer hacer es poder identificar qué tipo de elemento, qué tipo de ticket
[58:59] tipo de elemento, qué tipo de ticket nosotros estamos recibiendo y en base a
[59:01] nosotros estamos recibiendo y en base a eso llevar estos elementos por una ruta
[59:03] eso llevar estos elementos por una ruta distinta de nuestro workflow. Para que
[59:06] distinta de nuestro workflow. Para que nosotros podamos hacer eso, vamos a
[59:07] nosotros podamos hacer eso, vamos a agregar nuestro nodo que se llama
[59:10] agregar nuestro nodo que se llama switch. Y aquí nos está indicando
[59:11] switch. Y aquí nos está indicando clarito qué es lo que hace. route items
[59:13] clarito qué es lo que hace. route items depending on defined expressions or
[59:15] depending on defined expressions or rules. Vamos a pinchar acá y aquí es
[59:17] rules. Vamos a pinchar acá y aquí es donde nosotros tenemos que empezar a
[59:19] donde nosotros tenemos que empezar a tomar las decisiones. Acá tenemos el
[59:21] tomar las decisiones. Acá tenemos el modo que es rules. Este modo vendría
[59:23] modo que es rules. Este modo vendría siendo el modo por defecto donde
[59:24] siendo el modo por defecto donde nosotros podemos tomar en este caso, el
[59:26] nosotros podemos tomar en este caso, el campo que nosotros queramos analizar.
[59:28] campo que nosotros queramos analizar. Como puedes ver aquí nosotros el que
[59:30] Como puedes ver aquí nosotros el que vamos a analizar es el de tipo. Así que
[59:31] vamos a analizar es el de tipo. Así que yo lo que voy a hacer es tomarlo y
[59:33] yo lo que voy a hacer es tomarlo y arrastrarlo hasta el primer campo.
[59:36] arrastrarlo hasta el primer campo. Después de eso, yo lo que voy a hacer es
[59:37] Después de eso, yo lo que voy a hacer es pinchar afuera y voy a preguntar si es
[59:39] pinchar afuera y voy a preguntar si es que el valor es de tipo soporte. En el
[59:42] que el valor es de tipo soporte. En el caso de que sea de tipo soporte, lo que
[59:44] caso de que sea de tipo soporte, lo que va a hacer es llevarme estos elementos
[59:46] va a hacer es llevarme estos elementos por un camino. Pero si no llegas a hacer
[59:48] por un camino. Pero si no llegas a hacer soporte, yo todavía no tengo definida
[59:51] soporte, yo todavía no tengo definida una salida de qué es lo que ocurriría
[59:52] una salida de qué es lo que ocurriría con esos elementos. Así que yo voy a
[59:54] con esos elementos. Así que yo voy a definirla inmediatamente. Para eso vamos
[59:56] definirla inmediatamente. Para eso vamos a venirnos acá donde dice add routing
[59:58] a venirnos acá donde dice add routing root. Pinchamos en esto y ahora podemos
[01:00:00] root. Pinchamos en esto y ahora podemos volver a tomar este tipo y lo vamos a
[01:00:03] volver a tomar este tipo y lo vamos a arrastrar acá. Pero en lugar de yo
[01:00:06] arrastrar acá. Pero en lugar de yo colocarle acá el texto de soporte, vamos
[01:00:09] colocarle acá el texto de soporte, vamos a colocar el texto de feedback, que es
[01:00:11] a colocar el texto de feedback, que es como aparece acá. Así que yo voy a venir
[01:00:13] como aparece acá. Así que yo voy a venir aquí, vamos a escribir feedback y puedo
[01:00:16] aquí, vamos a escribir feedback y puedo pinchar ahora en execute step. Vamos a
[01:00:18] pinchar ahora en execute step. Vamos a pinchar acá y nosotros vemos ahora algo
[01:00:20] pinchar acá y nosotros vemos ahora algo un poco extraño. Si te está pasando
[01:00:21] un poco extraño. Si te está pasando esto, no te preocupes, esto es solamente
[01:00:23] esto, no te preocupes, esto es solamente un problema de la interface de usuario.
[01:00:24] un problema de la interface de usuario. Aquí nosotros tenemos un output. Nos
[01:00:26] Aquí nosotros tenemos un output. Nos está diciendo que el output cero tiene
[01:00:28] está diciendo que el output cero tiene dos ítems y el output 1 tiene solamente
[01:00:31] dos ítems y el output 1 tiene solamente un ítem. Sin embargo, acá nosotros
[01:00:32] un ítem. Sin embargo, acá nosotros podemos ver solamente un elemento y no
[01:00:34] podemos ver solamente un elemento y no vemos los dos. No te preocupes si es que
[01:00:36] vemos los dos. No te preocupes si es que te pasa esto a ti también tú puedes
[01:00:38] te pasa esto a ti también tú puedes venirte acá a la vista de table y aquí
[01:00:40] venirte acá a la vista de table y aquí nosotros podemos ver los dos elementos.
[01:00:41] nosotros podemos ver los dos elementos. Tenemos el de ID1 y el de ID3 y ambos
[01:00:44] Tenemos el de ID1 y el de ID3 y ambos son de tipo soporte. Pero si nos vamos
[01:00:46] son de tipo soporte. Pero si nos vamos ahora a la vista de output 1, vamos a
[01:00:48] ahora a la vista de output 1, vamos a ver que aquí tenemos el ID2 que es de
[01:00:50] ver que aquí tenemos el ID2 que es de tipo feedback. Entonces ahora nosotros
[01:00:52] tipo feedback. Entonces ahora nosotros podemos cerrar acá y aquí ya podemos ver
[01:00:54] podemos cerrar acá y aquí ya podemos ver que tenemos dos salidas. Tenemos la
[01:00:57] que tenemos dos salidas. Tenemos la salida con los dos ítems y tenemos la
[01:00:59] salida con los dos ítems y tenemos la otra salida con un solo ítem. Y por
[01:01:01] otra salida con un solo ítem. Y por supuesto que dependiendo de lo que
[01:01:02] supuesto que dependiendo de lo que nosotros queramos hacer, nosotros
[01:01:03] nosotros queramos hacer, nosotros podemos venir acá y pinchamos y
[01:01:05] podemos venir acá y pinchamos y agregamos un nodo. En este caso, este
[01:01:07] agregamos un nodo. En este caso, este nodo vendría siendo para los dos
[01:01:08] nodo vendría siendo para los dos elementos de tipo soporte y este sería
[01:01:11] elementos de tipo soporte y este sería para los elementos de tipo feedback.
[01:01:13] para los elementos de tipo feedback. Ahora vamos a pinchar aquí en save y
[01:01:15] Ahora vamos a pinchar aquí en save y podemos pasar a nuestro siguiente video.
[01:01:17] podemos pasar a nuestro siguiente video. [música]
[01:01:20] Hasta ahora hemos estado trabajando con
[01:01:22] Hasta ahora hemos estado trabajando con datos en duro dentro de nuestros
[01:01:24] datos en duro dentro de nuestros workflow. Por supuesto que esto no es un
[01:01:26] workflow. Por supuesto que esto no es un caso de la vida real. En la vida real
[01:01:27] caso de la vida real. En la vida real nos van a estar llegando los datos a
[01:01:29] nos van a estar llegando los datos a través de algún webhop o a través de
[01:01:30] través de algún webhop o a través de alguna integración con alguna aplicación
[01:01:32] alguna integración con alguna aplicación externa. Sin embargo, nosotros también
[01:01:34] externa. Sin embargo, nosotros también por debajo hemos estado utilizando un
[01:01:36] por debajo hemos estado utilizando un sistema del cual todavía no te he
[01:01:38] sistema del cual todavía no te he explicado y se llaman las variables
[01:01:40] explicado y se llaman las variables dinámicas. Utilizando exactamente el
[01:01:42] dinámicas. Utilizando exactamente el mismo ejemplo que vimos antes, vamos a
[01:01:44] mismo ejemplo que vimos antes, vamos a venir a ver acá qué es lo que contiene
[01:01:46] venir a ver acá qué es lo que contiene este nodo de switch. Vamos a hacer dos
[01:01:49] este nodo de switch. Vamos a hacer dos clics y quiero que te fijes en lo
[01:01:50] clics y quiero que te fijes en lo siguiente. Cuando nosotros estamos
[01:01:52] siguiente. Cuando nosotros estamos escribiendo el texto acá dentro de
[01:01:54] escribiendo el texto acá dentro de cualquier cosa que diga f(x) y nosotros
[01:01:57] cualquier cosa que diga f(x) y nosotros lo coloquemos dentro de estos dobles
[01:01:59] lo coloquemos dentro de estos dobles paréntesis de llaves, lo que estamos
[01:02:01] paréntesis de llaves, lo que estamos haciendo es que estamos utilizando
[01:02:02] haciendo es que estamos utilizando variables dinámicas. En general, aquí no
[01:02:05] variables dinámicas. En general, aquí no estamos diciendo que el resultado va a
[01:02:06] estamos diciendo que el resultado va a ser soporte, sino que estamos diciendo
[01:02:08] ser soporte, sino que estamos diciendo que vamos a recibir un objeto tipo JSON,
[01:02:11] que vamos a recibir un objeto tipo JSON, el cual contiene una propiedad que se
[01:02:13] el cual contiene una propiedad que se llama tipo. Y esta propiedad luego va a
[01:02:15] llama tipo. Y esta propiedad luego va a ser evaluada en tiempo real. Si tú sabes
[01:02:17] ser evaluada en tiempo real. Si tú sabes programación, esto va a ser sumamente
[01:02:19] programación, esto va a ser sumamente fácil, pero en general quiere decir que
[01:02:21] fácil, pero en general quiere decir que todo lo que diga acá va a ser
[01:02:23] todo lo que diga acá va a ser reemplazado después por el valor que se
[01:02:26] reemplazado después por el valor que se encuentre asignado dentro de nuestro
[01:02:27] encuentre asignado dentro de nuestro objeto. En este caso nosotros tenemos el
[01:02:30] objeto. En este caso nosotros tenemos el primer campo, aquí dentro de field
[01:02:32] primer campo, aquí dentro de field tenemos tipo, el cual es soporte,
[01:02:33] tenemos tipo, el cual es soporte, después tenemos otro tipo que es
[01:02:35] después tenemos otro tipo que es feedback y después tenemos otro tipo que
[01:02:37] feedback y después tenemos otro tipo que vuelve a ser soporte. Cuando nosotros
[01:02:39] vuelve a ser soporte. Cuando nosotros estemos haciendo referencia a los
[01:02:40] estemos haciendo referencia a los valores, no vamos a decir soporte,
[01:02:42] valores, no vamos a decir soporte, nosotros vamos a decir la propiedad del
[01:02:44] nosotros vamos a decir la propiedad del objeto que nosotros estemos evaluando.
[01:02:46] objeto que nosotros estemos evaluando. En este caso puede ser tipo, pero
[01:02:48] En este caso puede ser tipo, pero también podría ser nombre o también
[01:02:49] también podría ser nombre o también podría ser ID. Y una última cosa antes
[01:02:51] podría ser ID. Y una última cosa antes de continuar. Si tú sabes JavaScript, te
[01:02:53] de continuar. Si tú sabes JavaScript, te vas a dar cuenta que todo lo que
[01:02:55] vas a dar cuenta que todo lo que aparezca acá escrito es código
[01:02:58] aparezca acá escrito es código JavaScript. De hecho, aquí mismo te lo
[01:02:59] JavaScript. De hecho, aquí mismo te lo está indicando. Anything Inside dentro
[01:03:02] está indicando. Anything Inside dentro de estos paréntesis de llaves es código
[01:03:04] de estos paréntesis de llaves es código JavaScript. Entonces, nosotros después
[01:03:05] JavaScript. Entonces, nosotros después podríamos tomar esto y empezar a
[01:03:07] podríamos tomar esto y empezar a escribir cosas como por ejemplo include,
[01:03:10] escribir cosas como por ejemplo include, split, start with, replace all. Como
[01:03:12] split, start with, replace all. Como puedes ver acá nosotros estamos
[01:03:14] puedes ver acá nosotros estamos accediendo a todos los métodos que
[01:03:16] accediendo a todos los métodos que contiene un string dentro de código
[01:03:18] contiene un string dentro de código JavaScript. Por supuesto que también
[01:03:19] JavaScript. Por supuesto que también podemos acceder a propiedades como, por
[01:03:21] podemos acceder a propiedades como, por ejemplo, length. También podríamos
[01:03:23] ejemplo, length. También podríamos querer concatenar esto con más texto
[01:03:25] querer concatenar esto con más texto para que veamos en acción cómo funciona
[01:03:26] para que veamos en acción cómo funciona esto de las variables dinámicas, yo voy
[01:03:28] esto de las variables dinámicas, yo voy a seleccionar este nodo de merch y voy a
[01:03:30] a seleccionar este nodo de merch y voy a agregar un nuevo nodo de set. Vamos a
[01:03:33] agregar un nuevo nodo de set. Vamos a pinchar aquí y luego de esto vamos a
[01:03:35] pinchar aquí y luego de esto vamos a seleccionar justamente acá en nuestro
[01:03:37] seleccionar justamente acá en nuestro panel de input nos vamos a venir a merch
[01:03:39] panel de input nos vamos a venir a merch y voy a seleccionar este de Nico y lo
[01:03:41] y voy a seleccionar este de Nico y lo voy a arrastrar acá. Acá nosotros
[01:03:43] voy a arrastrar acá. Acá nosotros tenemos nombre, pero también tenemos
[01:03:44] tenemos nombre, pero también tenemos este código de JavaScript. Yo lo que voy
[01:03:46] este código de JavaScript. Yo lo que voy a hacer es cambiar el valor de nombre
[01:03:48] a hacer es cambiar el valor de nombre por mensaje y acá abajo voy a escribir
[01:03:51] por mensaje y acá abajo voy a escribir hola, el nombre, coma. Así que tu
[01:03:53] hola, el nombre, coma. Así que tu mensaje es de tipo y aquí al final lo
[01:03:57] mensaje es de tipo y aquí al final lo que vamos a hacer es arrastrar la
[01:03:59] que vamos a hacer es arrastrar la propiedad de tipo y la vamos a colocar
[01:04:00] propiedad de tipo y la vamos a colocar aquí al final. Ahora sí vamos a ejecutar
[01:04:03] aquí al final. Ahora sí vamos a ejecutar este paso y nosotros podemos ver aquí
[01:04:04] este paso y nosotros podemos ver aquí que se está agregando Hola, Nico. Así
[01:04:06] que se está agregando Hola, Nico. Así que tu mensaje es de tipo soporte y lo
[01:04:08] que tu mensaje es de tipo soporte y lo mismo para Felipe donde su mensaje de
[01:04:10] mismo para Felipe donde su mensaje de tipo feedback y para Chanchito que su
[01:04:11] tipo feedback y para Chanchito que su mensaje es de tipo soporte.
[01:04:17] Cuando nosotros estamos trabajando con
[01:04:18] Cuando nosotros estamos trabajando con fechas, estas por lo general vienen con
[01:04:20] fechas, estas por lo general vienen con un formato ISO. Esto quiere decir que
[01:04:22] un formato ISO. Esto quiere decir que las fechas van a venir con el año, el
[01:04:24] las fechas van a venir con el año, el mes, el día, la hora y también si es que
[01:04:27] mes, el día, la hora y también si es que estas tienen un uso horario o en
[01:04:29] estas tienen un uso horario o en términos técnicos un UTC offset, lo que
[01:04:32] términos técnicos un UTC offset, lo que significa qué tan corrido te encuentras
[01:04:34] significa qué tan corrido te encuentras tú del meridiano de Greenwich. Nosotros
[01:04:36] tú del meridiano de Greenwich. Nosotros cuando estamos trabajando con las fechas
[01:04:38] cuando estamos trabajando con las fechas en internet, estas también nos van a
[01:04:39] en internet, estas también nos van a venir con el uso horario. Entonces,
[01:04:40] venir con el uso horario. Entonces, [carraspeo] cuando yo me refiero al
[01:04:41] [carraspeo] cuando yo me refiero al offset del Meridiano de Greenwich, me
[01:04:44] offset del Meridiano de Greenwich, me estoy refiriendo aquí a Londres, porque
[01:04:45] estoy refiriendo aquí a Londres, porque por ahí está pasando la línea del
[01:04:47] por ahí está pasando la línea del meridano de Greenwich. Entonces, toda
[01:04:48] meridano de Greenwich. Entonces, toda esta franja va a tener el uso horario
[01:04:51] esta franja va a tener el uso horario con el UTC cer. Pero si tú te empiezas a
[01:04:53] con el UTC cer. Pero si tú te empiezas a ir para otras zonas, como por ejemplo,
[01:04:55] ir para otras zonas, como por ejemplo, te podrías venir a Chile, te vas a dar
[01:04:57] te podrías venir a Chile, te vas a dar cuenta que tienes el -4, en Argentina
[01:04:58] cuenta que tienes el -4, en Argentina tienes un -3. Si te vas a México, en
[01:05:00] tienes un -3. Si te vas a México, en esta parte que aparece acá, vas a tener
[01:05:02] esta parte que aparece acá, vas a tener -6. En Colombia, Perú, Ecuador, vas a
[01:05:05] -6. En Colombia, Perú, Ecuador, vas a tener un -5. y creo que ya me entendiste
[01:05:07] tener un -5. y creo que ya me entendiste el punto. Entonces, las fechas que tú
[01:05:09] el punto. Entonces, las fechas que tú vas a recibir en internet contienen
[01:05:11] vas a recibir en internet contienen absolutamente toda esa información y
[01:05:12] absolutamente toda esa información y tienes que transformarlas a algo que a
[01:05:14] tienes que transformarlas a algo que a ti te haga sentido y también a tu
[01:05:16] ti te haga sentido y también a tu equipo. Así que vamos a ver cómo podemos
[01:05:18] equipo. Así que vamos a ver cómo podemos hacer esta misma transformación, algo
[01:05:20] hacer esta misma transformación, algo más legible por personas comunes y
[01:05:22] más legible por personas comunes y corrientes. Para este caso, nos hemos
[01:05:23] corrientes. Para este caso, nos hemos devuelto nuevamente a este workflow.
[01:05:25] devuelto nuevamente a este workflow. Aquí nosotros vamos a agregar un nuevo
[01:05:27] Aquí nosotros vamos a agregar un nuevo nodo, el cual va a ser nuevamente el de
[01:05:30] nodo, el cual va a ser nuevamente el de set. Aquí tenemos edit fields set y
[01:05:32] set. Aquí tenemos edit fields set y vamos a pinchar en este. Acá yo lo que
[01:05:34] vamos a pinchar en este. Acá yo lo que quiero hacer es poder tomar este campo
[01:05:36] quiero hacer es poder tomar este campo de fecha, el cual yo se lo agregué a
[01:05:38] de fecha, el cual yo se lo agregué a cada uno de los elementos y poder
[01:05:40] cada uno de los elementos y poder manipularlo a algo más legible. Como
[01:05:42] manipularlo a algo más legible. Como puedes ver acá nosotros tenemos el año,
[01:05:43] puedes ver acá nosotros tenemos el año, el mes, el día separado de un t 2.00z.
[01:05:48] el mes, el día separado de un t 2.00z. Ahora lo que vamos a hacer es empezar a
[01:05:50] Ahora lo que vamos a hacer es empezar a construir este objeto. Arrastramos ID,
[01:05:52] construir este objeto. Arrastramos ID, después arrastramos nombre acá, después
[01:05:55] después arrastramos nombre acá, después arrastramos tipo y finalmente acá abajo
[01:05:58] arrastramos tipo y finalmente acá abajo vamos a arrastrar fecha. Pero aquí es
[01:05:59] vamos a arrastrar fecha. Pero aquí es donde nosotros vamos a realizar el
[01:06:01] donde nosotros vamos a realizar el siguiente cambio. Justamente acá, si
[01:06:03] siguiente cambio. Justamente acá, si nosotros hacemos zoom, vamos a ver que
[01:06:05] nosotros hacemos zoom, vamos a ver que me sigue mostrando exactamente el mismo
[01:06:06] me sigue mostrando exactamente el mismo dato y este es el que yo quiero
[01:06:08] dato y este es el que yo quiero transformar. Entonces, aquí vamos a
[01:06:10] transformar. Entonces, aquí vamos a empezar a escribir date. Y fíjate que me
[01:06:13] empezar a escribir date. Y fíjate que me aparece esa sugerencia de autocompletado
[01:06:15] aparece esa sugerencia de autocompletado de date time. Vamos a presionar enter.
[01:06:17] de date time. Vamos a presionar enter. Después de esto seleccionamos from ISO.
[01:06:20] Después de esto seleccionamos from ISO. A medida que yo voy escribiendo, yo creo
[01:06:22] A medida que yo voy escribiendo, yo creo que ya te estás dando cuenta que N8N me
[01:06:23] que ya te estás dando cuenta que N8N me empieza a autocompletar absolutamente
[01:06:26] empieza a autocompletar absolutamente todas estas opciones. Ahora, como puedes
[01:06:27] todas estas opciones. Ahora, como puedes ver acá abajo aparece lo que se supone
[01:06:30] ver acá abajo aparece lo que se supone que es un array y contiene todavía más
[01:06:32] que es un array y contiene todavía más información, pero vamos a seguir
[01:06:34] información, pero vamos a seguir cambiando esto. Después, justamente
[01:06:35] cambiando esto. Después, justamente después del paréntesis, vamos a escribir
[01:06:38] después del paréntesis, vamos a escribir pun to format. Abrimos y cerramos
[01:06:41] pun to format. Abrimos y cerramos paréntesis y vamos a colocar unas
[01:06:43] paréntesis y vamos a colocar unas comillas simples acá adentro. Y acá es
[01:06:45] comillas simples acá adentro. Y acá es donde nosotros vamos a escribir DDU- mm
[01:06:48] donde nosotros vamos a escribir DDU- mm en mayúscula. seguido de cuatro veces la
[01:06:51] en mayúscula. seguido de cuatro veces la letra y aquí nosotros podemos ver el
[01:06:54] letra y aquí nosotros podemos ver el resultado final que nos va a entregar.
[01:06:55] resultado final que nos va a entregar. Aquí nosotros tenemos el día seguido del
[01:06:57] Aquí nosotros tenemos el día seguido del mes y finalmente el año. Esto es lo que
[01:06:59] mes y finalmente el año. Esto es lo que nosotros queremos. Ahora sí, nosotros
[01:07:01] nosotros queremos. Ahora sí, nosotros podemos pinchar afuera. Vamos a pinchar
[01:07:03] podemos pinchar afuera. Vamos a pinchar acá ahora en execute step y podemos ver
[01:07:06] acá ahora en execute step y podemos ver ahora como nuestro output contiene
[01:07:08] ahora como nuestro output contiene nuestras fechas con el nuevo formato.
[01:07:14] Hasta el momento ya hemos visto todo lo
[01:07:16] Hasta el momento ya hemos visto todo lo necesario para que tú puedas manipular
[01:07:18] necesario para que tú puedas manipular datos dentro de N8N. Ahora lo que
[01:07:21] datos dentro de N8N. Ahora lo que tenemos que hacer es poner en práctica
[01:07:23] tenemos que hacer es poner en práctica todo lo aprendido. Así que vamos a
[01:07:24] todo lo aprendido. Así que vamos a resolver el siguiente ejercicio. Vas a
[01:07:26] resolver el siguiente ejercicio. Vas a tener que construir un workflow. Este
[01:07:29] tener que construir un workflow. Este workflow va ser gatillado o disparado
[01:07:32] workflow va ser gatillado o disparado por un webhook. Este webhook, por
[01:07:34] por un webhook. Este webhook, por supuesto que tú lo vas a tener que
[01:07:36] supuesto que tú lo vas a tener que implementar, vas a tener que hacer que
[01:07:38] implementar, vas a tener que hacer que el endo te esté escuchando y vas a tener
[01:07:40] el endo te esté escuchando y vas a tener que llamarlo. Cuando tú lo llames, vas a
[01:07:42] que llamarlo. Cuando tú lo llames, vas a tener que recibir los parámetros de
[01:07:45] tener que recibir los parámetros de nombre, apellido y correo electrónico.
[01:07:48] nombre, apellido y correo electrónico. Esto después lo que vas a tener que
[01:07:49] Esto después lo que vas a tener que hacer es validarlo. Vas a tener que
[01:07:51] hacer es validarlo. Vas a tener que validar que exista el correo
[01:07:53] validar que exista el correo electrónico. En el caso de que no exista
[01:07:56] electrónico. En el caso de que no exista un correo electrónico, vas a tener que
[01:07:58] un correo electrónico, vas a tener que omitir esta petición que te llegó y no
[01:08:00] omitir esta petición que te llegó y no vas a hacer absolutamente nada con esto.
[01:08:02] vas a hacer absolutamente nada con esto. Pero si es que sí tenía un correo
[01:08:04] Pero si es que sí tenía un correo electrónico, lo que vas a tener que
[01:08:05] electrónico, lo que vas a tener que hacer es después construir un objeto que
[01:08:07] hacer es después construir un objeto que va a tener el nombre completo y también
[01:08:09] va a tener el nombre completo y también el correo electrónico. ¿Y por qué?
[01:08:11] el correo electrónico. ¿Y por qué? Existen algunos sistemas que no utilizan
[01:08:13] Existen algunos sistemas que no utilizan el patrón de nombre y apellido, sino que
[01:08:15] el patrón de nombre y apellido, sino que utilizan un nombre completo y eso
[01:08:17] utilizan un nombre completo y eso después lo envían a sus servidores
[01:08:19] después lo envían a sus servidores porque consideran que esto simplifica un
[01:08:21] porque consideran que esto simplifica un poco más la experiencia de usuario. Así
[01:08:22] poco más la experiencia de usuario. Así que crea tu nuevo workflow, empieza a
[01:08:25] que crea tu nuevo workflow, empieza a implementar esto, ponle pausa a este
[01:08:26] implementar esto, ponle pausa a este video sin hacer trampa, ponle pausa a
[01:08:28] video sin hacer trampa, ponle pausa a este video, intenta construirlo y nos
[01:08:30] este video, intenta construirlo y nos veremos en un par de segundos.
[01:08:32] veremos en un par de segundos. [música]
[01:08:34] Y ahora pasemos a ver mi solución. El
[01:08:36] Y ahora pasemos a ver mi solución. El paso número uno y el más importante, por
[01:08:37] paso número uno y el más importante, por supuesto, crear un workflow. Una vez que
[01:08:40] supuesto, crear un workflow. Una vez que se haya creado, aquí nosotros vamos a
[01:08:41] se haya creado, aquí nosotros vamos a renombrarlo y le vamos a colocar
[01:08:43] renombrarlo y le vamos a colocar ejercicio y presionamos enter. Después
[01:08:46] ejercicio y presionamos enter. Después vamos a agregar nuestro primer paso, el
[01:08:48] vamos a agregar nuestro primer paso, el cual es un web hook. Aquí está. Así que
[01:08:51] cual es un web hook. Aquí está. Así que vamos a pincharlo y vamos a decir que
[01:08:53] vamos a pincharlo y vamos a decir que vamos a recibir sus valores por get.
[01:08:55] vamos a recibir sus valores por get. Ahora lo que vamos a hacer es empezar a
[01:08:57] Ahora lo que vamos a hacer es empezar a escuchar este evento. Así que pinchamos
[01:08:59] escuchar este evento. Así que pinchamos acá. Ahora vamos a copiar esta URL. y
[01:09:01] acá. Ahora vamos a copiar esta URL. y voy a venir a reemplazar esta, pero
[01:09:04] voy a venir a reemplazar esta, pero tenemos que agregar el símbolo de
[01:09:05] tenemos que agregar el símbolo de pregunta seguido de nombre igual
[01:09:08] pregunta seguido de nombre igual Nicolás. Ampersand apellido igual
[01:09:11] Nicolás. Ampersand apellido igual Shurman.
[01:09:13] Shurman. correo igual nicolas@olamundo.io.
[01:09:17] correo igual nicolas@olamundo.io. Ahora vamos a presionar enter y vemos
[01:09:19] Ahora vamos a presionar enter y vemos que el workflow ha comenzado. Ahora nos
[01:09:21] que el workflow ha comenzado. Ahora nos podemos devolver a nuestro workflow del
[01:09:22] podemos devolver a nuestro workflow del ejercicio y aquí nosotros a la derecha
[01:09:24] ejercicio y aquí nosotros a la derecha si bajamos deberíamos poder ver todos
[01:09:26] si bajamos deberíamos poder ver todos estos valores y aquí se encuentran
[01:09:28] estos valores y aquí se encuentran dentro de querer ahora sí podemos
[01:09:30] dentro de querer ahora sí podemos continuar. Lo primero que vamos a hacer
[01:09:32] continuar. Lo primero que vamos a hacer por supuesto, es pinear nuestros datos
[01:09:35] por supuesto, es pinear nuestros datos para que no tengamos que estar llamando
[01:09:36] para que no tengamos que estar llamando constantemente a este webhook. Así que
[01:09:38] constantemente a este webhook. Así que ahora sí podemos cerrar y ahora podemos
[01:09:41] ahora sí podemos cerrar y ahora podemos empezar. Primero validando el correo
[01:09:43] empezar. Primero validando el correo electrónico. Así que acá vamos a buscar
[01:09:45] electrónico. Así que acá vamos a buscar en nuestro nodo de if. Y ahora
[01:09:47] en nuestro nodo de if. Y ahora deberíamos nosotros comenzar validando
[01:09:49] deberíamos nosotros comenzar validando el correo electrónico, pero lo primero
[01:09:51] el correo electrónico, pero lo primero que voy a hacer es transformar estos
[01:09:52] que voy a hacer es transformar estos datos para que me devuelva algo un poco
[01:09:54] datos para que me devuelva algo un poco más limpio. Entonces voy a venir acá,
[01:09:57] más limpio. Entonces voy a venir acá, voy a buscar mi nodo de set y voy a
[01:09:59] voy a buscar mi nodo de set y voy a bajar hasta que llegue a la parte de
[01:10:01] bajar hasta que llegue a la parte de querer y aquí le voy a pasar nombre, le
[01:10:04] querer y aquí le voy a pasar nombre, le voy a pasar también apellido y también
[01:10:06] voy a pasar también apellido y también le voy a pasar correo. Y ahora podemos
[01:10:09] le voy a pasar correo. Y ahora podemos ejecutar este paso. Perfecto, tenemos
[01:10:11] ejecutar este paso. Perfecto, tenemos este objeto, pero lo que voy a hacer es
[01:10:13] este objeto, pero lo que voy a hacer es cambiar el nombre de la propiedad
[01:10:15] cambiar el nombre de la propiedad eliminando acá la palabra de querery.
[01:10:17] eliminando acá la palabra de querery. Así que eliminamos. Vamos a hacer lo
[01:10:19] Así que eliminamos. Vamos a hacer lo mismo acá con apellido y finalmente con
[01:10:23] mismo acá con apellido y finalmente con correo. Ahora volvemos a pinchar acá en
[01:10:25] correo. Ahora volvemos a pinchar acá en execute step. Perfecto. Y ya tenemos
[01:10:27] execute step. Perfecto. Y ya tenemos esto mejor formateado. Ahora podemos
[01:10:28] esto mejor formateado. Ahora podemos cerrar acá. Ahora podemos pasar a
[01:10:30] cerrar acá. Ahora podemos pasar a validar si es que existe o no el correo
[01:10:32] validar si es que existe o no el correo electrónico. Para eso nos devolvemos
[01:10:35] electrónico. Para eso nos devolvemos aquí. Vamos a pinchar acá en este botón
[01:10:37] aquí. Vamos a pinchar acá en este botón de más y vamos a buscar if.
[01:10:39] de más y vamos a buscar if. Seleccionamos este nodo y ahora lo que
[01:10:41] Seleccionamos este nodo y ahora lo que vamos a hacer es tomar la propiedad de
[01:10:43] vamos a hacer es tomar la propiedad de correo, la vamos a poner acá. Vamos a
[01:10:45] correo, la vamos a poner acá. Vamos a seleccionar esto, nos vamos a ir acá a
[01:10:47] seleccionar esto, nos vamos a ir acá a string y vamos a decir que existe. Con
[01:10:50] string y vamos a decir que existe. Con esto ya estamos verificando si es que
[01:10:51] esto ya estamos verificando si es que existe ese valor. Y si nuestro nodo lo
[01:10:53] existe ese valor. Y si nuestro nodo lo ejecutamos correctamente, vamos a ver
[01:10:55] ejecutamos correctamente, vamos a ver que ahora sí tenemos un ítem que se está
[01:10:58] que ahora sí tenemos un ítem que se está yendo por la rama de true. Entonces,
[01:11:01] yendo por la rama de true. Entonces, ahora podemos pasar a construir el
[01:11:03] ahora podemos pasar a construir el nombre completo de este elemento. Así
[01:11:05] nombre completo de este elemento. Así que vamos a pinchar acá nuevamente en el
[01:11:06] que vamos a pinchar acá nuevamente en el símbolo de más. Vamos a seleccionar
[01:11:08] símbolo de más. Vamos a seleccionar nuevamente set. Y ahora vamos a pinchar
[01:11:10] nuevamente set. Y ahora vamos a pinchar acá en add field. En name vamos a
[01:11:12] acá en add field. En name vamos a colocar nombre completo. Y ahora vamos a
[01:11:15] colocar nombre completo. Y ahora vamos a arrastrar nombre seguido de un espacio y
[01:11:18] arrastrar nombre seguido de un espacio y vamos a arrastrar ahora apellido. Además
[01:11:20] vamos a arrastrar ahora apellido. Además de esto también vamos a pasar el correo
[01:11:21] de esto también vamos a pasar el correo electrónico. Ahora pinchamos acá en
[01:11:23] electrónico. Ahora pinchamos acá en execute step y podemos ver finalmente
[01:11:26] execute step y podemos ver finalmente nuestro objeto construido con éxito.
[01:11:28] nuestro objeto construido con éxito. Ahora tenemos que evaluar si es que esto
[01:11:30] Ahora tenemos que evaluar si es que esto funciona para el caso que nosotros no
[01:11:32] funciona para el caso que nosotros no recibamos el correo electrónico. Así que
[01:11:34] recibamos el correo electrónico. Así que yo lo que voy a hacer ahora es venirme
[01:11:36] yo lo que voy a hacer ahora es venirme nuevamente acá al webhook. Voy a pinchar
[01:11:39] nuevamente acá al webhook. Voy a pinchar nuevamente acá en list for test event.
[01:11:41] nuevamente acá en list for test event. Voy a seleccionar unpin and test. Voy a
[01:11:43] Voy a seleccionar unpin and test. Voy a copiar esta URL. Me voy a devolver acá.
[01:11:45] copiar esta URL. Me voy a devolver acá. Y en lugar de pegarla toda, yo lo que
[01:11:47] Y en lugar de pegarla toda, yo lo que voy a hacer es devolverme aquí hasta
[01:11:50] voy a hacer es devolverme aquí hasta justamente antes del símbolo de
[01:11:52] justamente antes del símbolo de pregunta. Selecciono todo y pego por si
[01:11:54] pregunta. Selecciono todo y pego por si eventualmente haya cambiado la URL. Y
[01:11:57] eventualmente haya cambiado la URL. Y ahora acá donde aparece correo, yo lo
[01:11:59] ahora acá donde aparece correo, yo lo que voy a hacer es sencillamente
[01:12:00] que voy a hacer es sencillamente eliminar la propiedad completa.
[01:12:02] eliminar la propiedad completa. Perfecto, hasta ahí. Y una vez que
[01:12:03] Perfecto, hasta ahí. Y una vez que presionamos enter, nosotros deberíamos
[01:12:05] presionamos enter, nosotros deberíamos ver ahora cómo ha comenzado nuestro
[01:12:06] ver ahora cómo ha comenzado nuestro workflow con éxito. Así que nos vamos a
[01:12:08] workflow con éxito. Así que nos vamos a devolver aquí a N8N. Vamos a venirnos
[01:12:10] devolver aquí a N8N. Vamos a venirnos aquí a nuestra sección de la derecha, a
[01:12:12] aquí a nuestra sección de la derecha, a la parte de output y vamos a bajar para
[01:12:14] la parte de output y vamos a bajar para verificar que efectivamente estamos
[01:12:16] verificar que efectivamente estamos recibiendo nuestro objeto que contiene
[01:12:18] recibiendo nuestro objeto que contiene nombre y apellido. Perfecto, aquí
[01:12:19] nombre y apellido. Perfecto, aquí nosotros lo tenemos. Ahora lo que vamos
[01:12:21] nosotros lo tenemos. Ahora lo que vamos a hacer es venir acá arriba y vamos a
[01:12:24] a hacer es venir acá arriba y vamos a seleccionar pin. Una vez que
[01:12:25] seleccionar pin. Una vez que seleccionamos PIN, ahora vamos a poder
[01:12:27] seleccionamos PIN, ahora vamos a poder cerrar esto y vamos a poder venir a cada
[01:12:29] cerrar esto y vamos a poder venir a cada uno de estos nodos y presionar el botón
[01:12:31] uno de estos nodos y presionar el botón de play. Pinchamos acá. Ahora vamos a
[01:12:33] de play. Pinchamos acá. Ahora vamos a pinchar aquí. Y si nosotros venimos a
[01:12:35] pinchar aquí. Y si nosotros venimos a pinchar acá en nuestro último nodo, no
[01:12:37] pinchar acá en nuestro último nodo, no deberíamos ver absolutamente nada porque
[01:12:39] deberíamos ver absolutamente nada porque no está yendo nuestro elemento por el
[01:12:42] no está yendo nuestro elemento por el camino de true, se está yendo por el
[01:12:43] camino de true, se está yendo por el camino de false. Si nosotros pinchamos
[01:12:45] camino de false. Si nosotros pinchamos dos veces acá en if, vamos a ver que
[01:12:47] dos veces acá en if, vamos a ver que finalmente tenemos nuestro output con un
[01:12:49] finalmente tenemos nuestro output con un true branch y un false branch. Y acá
[01:12:51] true branch y un false branch. Y acá dentro de false branch elemento que
[01:12:54] dentro de false branch elemento que recibimos por la URL dentro de nuestro
[01:12:57] recibimos por la URL dentro de nuestro webhook. Con esto nosotros ya sabemos
[01:12:58] webhook. Con esto nosotros ya sabemos cómo disparar los triggers. Aprendiste a
[01:13:00] cómo disparar los triggers. Aprendiste a disparar los triggers, aprendiste
[01:13:01] disparar los triggers, aprendiste también a manipular los datos y también
[01:13:03] también a manipular los datos y también aprendiste algo del control de flujo.
[01:13:05] aprendiste algo del control de flujo. Sin embargo, esto es incompleto si
[01:13:07] Sin embargo, esto es incompleto si nosotros no lo conectamos con
[01:13:09] nosotros no lo conectamos con aplicaciones que se utilizan en el día a
[01:13:11] aplicaciones que se utilizan en el día a día. Es por eso que en la siguiente
[01:13:12] día. Es por eso que en la siguiente sección nos vamos a dedicar exactamente
[01:13:14] sección nos vamos a dedicar exactamente a eso mismo. Vamos a ver Google Sheets,
[01:13:16] a eso mismo. Vamos a ver Google Sheets, Gmail, Slack, Discord y también Notion.
[01:13:19] Gmail, Slack, Discord y también Notion. [música]
[01:13:22] Bienvenidos a esta sección del curso de
[01:13:24] Bienvenidos a esta sección del curso de N8N, integraciones comunes. Tener un
[01:13:27] N8N, integraciones comunes. Tener un workflow dentro de N8N no es suficiente
[01:13:30] workflow dentro de N8N no es suficiente si el resultado de este no se lo podemos
[01:13:32] si el resultado de este no se lo podemos comunicar a alguien. Podríamos querer
[01:13:34] comunicar a alguien. Podríamos querer comunicárselo a alguien de nuestro
[01:13:35] comunicárselo a alguien de nuestro equipo o incluso a alguien externo.
[01:13:38] equipo o incluso a alguien externo. Nosotros siempre vamos a tener algo que
[01:13:40] Nosotros siempre vamos a tener algo que va a disparar nuestros workflow. Esto
[01:13:43] va a disparar nuestros workflow. Esto podría ser un Chrome, un Webhook, una
[01:13:45] podría ser un Chrome, un Webhook, una integración con una aplicación o un
[01:13:47] integración con una aplicación o un trigger manual. Nosotros vamos a
[01:13:48] trigger manual. Nosotros vamos a suponer, para este caso, que pudo haber
[01:13:50] suponer, para este caso, que pudo haber sido un usuario externo. Esto lo que va
[01:13:53] sido un usuario externo. Esto lo que va a hacer es disparar nuestro workflow. Y
[01:13:56] a hacer es disparar nuestro workflow. Y un workflow consta de un trigger, la
[01:13:58] un workflow consta de un trigger, la misma lógica que nosotros implementamos
[01:14:01] misma lógica que nosotros implementamos y finalmente una salida. Después lo que
[01:14:04] y finalmente una salida. Después lo que nosotros queremos hacer es tomar esta
[01:14:05] nosotros queremos hacer es tomar esta salida y enviarla a algún lado. Y para
[01:14:08] salida y enviarla a algún lado. Y para eso nosotros tenemos distintas
[01:14:09] eso nosotros tenemos distintas alternativas. Y en esta sección nosotros
[01:14:11] alternativas. Y en esta sección nosotros vamos a ver Google Sheets, Gmail, Slack,
[01:14:14] vamos a ver Google Sheets, Gmail, Slack, Discord y finalmente Notion. Así que
[01:14:17] Discord y finalmente Notion. Así que prepárate porque esta sección es donde
[01:14:20] prepárate porque esta sección es donde nosotros ya empezamos a ver los
[01:14:22] nosotros ya empezamos a ver los resultados de nuestros workflow.
[01:14:27] Vamos a comenzar ahora con nuestra
[01:14:29] Vamos a comenzar ahora con nuestra primera integración que es la de Google
[01:14:31] primera integración que es la de Google Sheets. Para eso nos vamos a venir acá a
[01:14:33] Sheets. Para eso nos vamos a venir acá a N8N y nos vamos a venir a crear un nuevo
[01:14:37] N8N y nos vamos a venir a crear un nuevo workflow. Aquí adentro vamos a agregar
[01:14:39] workflow. Aquí adentro vamos a agregar nuestro primer trigger, el cual va a ser
[01:14:41] nuestro primer trigger, el cual va a ser un trigger manual. Y después de esto nos
[01:14:43] un trigger manual. Y después de esto nos vamos a venir acá al símbolo de más y
[01:14:45] vamos a venir acá al símbolo de más y vamos a buscar sheet. Acá quiero que te
[01:14:48] vamos a buscar sheet. Acá quiero que te fijes en lo siguiente. Nosotros tenemos
[01:14:50] fijes en lo siguiente. Nosotros tenemos data table, que vendría siendo la
[01:14:52] data table, que vendría siendo la solución recomendada si nosotros
[01:14:53] solución recomendada si nosotros queremos compartir datos entre distintos
[01:14:56] queremos compartir datos entre distintos workflows. Pero nosotros no queremos
[01:14:57] workflows. Pero nosotros no queremos eso. Nosotros lo que queremos es
[01:14:59] eso. Nosotros lo que queremos es venirnos acá a Google Sheets. Vamos a
[01:15:01] venirnos acá a Google Sheets. Vamos a pinchar acá y luego vamos a buscar la
[01:15:04] pinchar acá y luego vamos a buscar la opción de append row in sheet. Esto lo
[01:15:07] opción de append row in sheet. Esto lo que va a hacer es ir agregando cada una
[01:15:10] que va a hacer es ir agregando cada una de las filas que nosotros vayamos
[01:15:11] de las filas que nosotros vayamos insertando abajo y si volvemos a agregar
[01:15:13] insertando abajo y si volvemos a agregar otra la vuelve a incluir abajo y así
[01:15:15] otra la vuelve a incluir abajo y así sucesivamente. Así que vamos a
[01:15:16] sucesivamente. Así que vamos a seleccionar append row in sheet y luego
[01:15:18] seleccionar append row in sheet y luego tenemos que venirnos acá arriba donde
[01:15:20] tenemos que venirnos acá arriba donde dice credential to connect with y
[01:15:23] dice credential to connect with y después vamos a encargarnos de rellenar
[01:15:24] después vamos a encargarnos de rellenar todas estas otras opciones. La que
[01:15:26] todas estas otras opciones. La que principalmente queremos es poder
[01:15:28] principalmente queremos es poder sincronizar las credenciales primero.
[01:15:30] sincronizar las credenciales primero. Así que nos vamos a venir acá y vamos a
[01:15:31] Así que nos vamos a venir acá y vamos a pinchar en create new credential. Aquí
[01:15:34] pinchar en create new credential. Aquí nosotros tenemos la opción de poder
[01:15:35] nosotros tenemos la opción de poder irnos a los documentos, que la verdad,
[01:15:37] irnos a los documentos, que la verdad, si es que no has configurado
[01:15:38] si es que no has configurado absolutamente nada antes, te sugiero que
[01:15:40] absolutamente nada antes, te sugiero que le des una vuelta. La verdad es que es
[01:15:42] le des una vuelta. La verdad es que es sumamente intuitivo el paso a paso que
[01:15:44] sumamente intuitivo el paso a paso que te dicen que tú tienes que seguir, pero
[01:15:46] te dicen que tú tienes que seguir, pero no te preocupes, en este video yo te voy
[01:15:47] no te preocupes, en este video yo te voy a mostrar cómo se hace. Lo que sí te
[01:15:49] a mostrar cómo se hace. Lo que sí te quería mencionar es que cada integración
[01:15:51] quería mencionar es que cada integración de aplicación va a contar con su propia
[01:15:53] de aplicación va a contar con su propia documentación, en el caso que las que
[01:15:55] documentación, en el caso que las que nosotros veamos dentro de este curso no
[01:15:57] nosotros veamos dentro de este curso no sean suficientes para ti. Entonces, lo
[01:15:58] sean suficientes para ti. Entonces, lo que nosotros queremos acá es pinchar en
[01:16:00] que nosotros queremos acá es pinchar en O out 2, entre paréntesis, recommended.
[01:16:04] O out 2, entre paréntesis, recommended. Y fíjate que acá me aparece una URL, la
[01:16:06] Y fíjate que acá me aparece una URL, la cual es la que nosotros tenemos que
[01:16:07] cual es la que nosotros tenemos que utilizar cuando estemos creando nuestras
[01:16:10] utilizar cuando estemos creando nuestras credenciales dentro del panel de
[01:16:12] credenciales dentro del panel de administración de Google Cloud. Una
[01:16:14] administración de Google Cloud. Una última cosa antes de continuar acá, yo
[01:16:16] última cosa antes de continuar acá, yo creo que tú ya puedes ver que mi URL de
[01:16:19] creo que tú ya puedes ver que mi URL de mi panel de administración ya cuenta con
[01:16:21] mi panel de administración ya cuenta con n8n.io.
[01:16:24] n8n.io. Esto es necesario ya que vamos a estar
[01:16:26] Esto es necesario ya que vamos a estar trabajando con certificados SSL, lo que
[01:16:29] trabajando con certificados SSL, lo que significa que ahora todas nuestras
[01:16:30] significa que ahora todas nuestras peticiones van a ser seguras. Antes, en
[01:16:32] peticiones van a ser seguras. Antes, en los videos anteriores, yo estaba
[01:16:34] los videos anteriores, yo estaba trabajando directamente con la IP. Este
[01:16:36] trabajando directamente con la IP. Este es el momento en el cual ya nos tenemos
[01:16:37] es el momento en el cual ya nos tenemos que empezar a pasar al nombre de nuestro
[01:16:39] que empezar a pasar al nombre de nuestro dominio. Así que vamos a pinchar acá y
[01:16:42] dominio. Así que vamos a pinchar acá y yo voy a aprovechar de copiar esta URL,
[01:16:45] yo voy a aprovechar de copiar esta URL, la vamos a necesitar después. Así que
[01:16:46] la vamos a necesitar después. Así que pincho acá, click to copy. Y ahora lo
[01:16:48] pincho acá, click to copy. Y ahora lo que vamos a hacer es abrir una nueva
[01:16:50] que vamos a hacer es abrir una nueva pestaña. Dentro de esta lo que vamos a
[01:16:52] pestaña. Dentro de esta lo que vamos a hacer es buscar Google Cloud. Y aquí lo
[01:16:54] hacer es buscar Google Cloud. Y aquí lo que nos interesa es venirnos a esta
[01:16:56] que nos interesa es venirnos a esta parte que dice Google Cloud Console. Así
[01:16:58] parte que dice Google Cloud Console. Así que pinchamos acá y una vez aquí
[01:17:00] que pinchamos acá y una vez aquí adentro, en el caso que no tengas creado
[01:17:02] adentro, en el caso que no tengas creado un proyecto, puedes venir a crearte un
[01:17:04] un proyecto, puedes venir a crearte un proyecto pinchando acá arriba. Yo, en
[01:17:07] proyecto pinchando acá arriba. Yo, en este caso, tengo Charlie R agent, pero
[01:17:09] este caso, tengo Charlie R agent, pero podríamos querer crear otro. En ese
[01:17:11] podríamos querer crear otro. En ese caso, yo pincho acá y acá yo puedo venir
[01:17:13] caso, yo pincho acá y acá yo puedo venir a crear otro proyecto, pero sin embargo,
[01:17:15] a crear otro proyecto, pero sin embargo, yo voy a dejar seleccionado este. Si ya
[01:17:17] yo voy a dejar seleccionado este. Si ya tienes varios proyectos, puedes venir
[01:17:19] tienes varios proyectos, puedes venir aquí a este botón que dice new project
[01:17:21] aquí a este botón que dice new project para poder crear uno nuevo. Y aquí estás
[01:17:23] para poder crear uno nuevo. Y aquí estás en la parte importante. Nosotros vamos a
[01:17:24] en la parte importante. Nosotros vamos a bajar hasta que encontremos esto. Appies
[01:17:28] bajar hasta que encontremos esto. Appies and services. Aquí es donde nosotros
[01:17:30] and services. Aquí es donde nosotros queremos pinchar. Esto nos debería dejar
[01:17:32] queremos pinchar. Esto nos debería dejar dentro de este panel de administración.
[01:17:33] dentro de este panel de administración. Y antes de hacer cualquier cosa,
[01:17:35] Y antes de hacer cualquier cosa, nosotros tenemos que venirnos acá a
[01:17:36] nosotros tenemos que venirnos acá a enable APIs and Services. Así que vamos
[01:17:39] enable APIs and Services. Así que vamos a pinchar en esto. Y aquí dentro de esta
[01:17:41] a pinchar en esto. Y aquí dentro de esta caja de búsqueda tenemos que empezar a
[01:17:43] caja de búsqueda tenemos que empezar a buscar los servicios que nosotros
[01:17:44] buscar los servicios que nosotros queremos habilitar. Así que pinchamos
[01:17:46] queremos habilitar. Así que pinchamos acá y yo voy a buscar sheet y acá voy a
[01:17:49] acá y yo voy a buscar sheet y acá voy a presionar enter. Esto es importante. Acá
[01:17:52] presionar enter. Esto es importante. Acá nos aparece Google Sheets API. Pinchamos
[01:17:54] nos aparece Google Sheets API. Pinchamos en esto y acá donde a mí me sale Manage
[01:17:57] en esto y acá donde a mí me sale Manage y Try this API debería aparecerte una
[01:18:00] y Try this API debería aparecerte una opción para poder habilitar esta API.
[01:18:02] opción para poder habilitar esta API. Aquí es donde tú tienes que habilitarla.
[01:18:04] Aquí es donde tú tienes que habilitarla. Si no realizas este paso e intentas
[01:18:06] Si no realizas este paso e intentas seguir conectándote o con los pasos que
[01:18:09] seguir conectándote o con los pasos que vienen, al momento de estar realizando
[01:18:11] vienen, al momento de estar realizando una petición en N8N, esto te va a
[01:18:13] una petición en N8N, esto te va a arrojar un error y posiblemente es
[01:18:15] arrojar un error y posiblemente es porque te faltó habilitar la API y una
[01:18:17] porque te faltó habilitar la API y una vez que nosotros ya la habilitamos nos
[01:18:19] vez que nosotros ya la habilitamos nos podemos devolver. Y en el caso que tú
[01:18:21] podemos devolver. Y en el caso que tú quieras habilitar otra API, como por
[01:18:22] quieras habilitar otra API, como por ejemplo podría ser la de Google Drive
[01:18:24] ejemplo podría ser la de Google Drive para poder gestionar archivos, puedes
[01:18:26] para poder gestionar archivos, puedes buscarlo acá. en Drive, te vienes aquí a
[01:18:28] buscarlo acá. en Drive, te vienes aquí a Google Drive API y haces exactamente lo
[01:18:31] Google Drive API y haces exactamente lo mismo, la habilitas desde acá. Al igual
[01:18:33] mismo, la habilitas desde acá. Al igual que con la API de Google Sheets, a mí me
[01:18:34] que con la API de Google Sheets, a mí me parece Manage y try this API porque yo
[01:18:36] parece Manage y try this API porque yo ya las tenía habilitadas. Así que una
[01:18:38] ya las tenía habilitadas. Así que una vez de que ya las tengas habilitadas,
[01:18:39] vez de que ya las tengas habilitadas, nos podemos devolver a APIs and
[01:18:42] nos podemos devolver a APIs and Services. Y ahora nosotros tenemos que
[01:18:44] Services. Y ahora nosotros tenemos que venirnos aquí a credentials. Una vez que
[01:18:46] venirnos aquí a credentials. Una vez que nos encontramos acá, nos vamos a venir
[01:18:48] nos encontramos acá, nos vamos a venir aquí a esta pestaña de Create
[01:18:50] aquí a esta pestaña de Create Credentials y aquí tenemos que
[01:18:52] Credentials y aquí tenemos que seleccionar la opción Outlient ID. Y
[01:18:55] seleccionar la opción Outlient ID. Y esto es porque cuando nosotros estamos
[01:18:57] esto es porque cuando nosotros estamos creando la credencial nos dice que
[01:18:58] creando la credencial nos dice que tenemos que utilizar Outlient ID. Esto
[01:19:01] tenemos que utilizar Outlient ID. Esto es desde el mismo panel de N8N. Así que
[01:19:03] es desde el mismo panel de N8N. Así que seleccionamos esto. En application type
[01:19:05] seleccionamos esto. En application type nosotros vamos a seleccionar web
[01:19:07] nosotros vamos a seleccionar web application. Y ahora le podemos indicar
[01:19:09] application. Y ahora le podemos indicar un nombre. Yo le voy a decir que va a
[01:19:10] un nombre. Yo le voy a decir que va a ser Sheets. Ahora tenemos que bajar
[01:19:13] ser Sheets. Ahora tenemos que bajar hasta authorized JavaScript Origins.
[01:19:15] hasta authorized JavaScript Origins. Vamos a pinchar acá y vamos a colocar el
[01:19:17] Vamos a pinchar acá y vamos a colocar el ad URI. Aquí es donde nosotros tenemos
[01:19:19] ad URI. Aquí es donde nosotros tenemos que pegar la URL que pegamos desde N8N.
[01:19:22] que pegar la URL que pegamos desde N8N. Pero si nosotros sacamos el foco de este
[01:19:24] Pero si nosotros sacamos el foco de este formulario nos va a empezar a molestar.
[01:19:26] formulario nos va a empezar a molestar. Nos está indicando que el origen es
[01:19:28] Nos está indicando que el origen es inválido. Para que esto no nos arroje
[01:19:30] inválido. Para que esto no nos arroje problemas, vamos a eliminar
[01:19:31] problemas, vamos a eliminar absolutamente toda la parte última de
[01:19:34] absolutamente toda la parte última de nuestra URL, cosa que solamente quede el
[01:19:37] nuestra URL, cosa que solamente quede el https 2/n8n.io.
[01:19:42] Ahora podemos pinchar afuera y vemos que
[01:19:43] Ahora podemos pinchar afuera y vemos que ya no tenemos este error. Ahora bajamos
[01:19:45] ya no tenemos este error. Ahora bajamos hasta Ad URI y aquí es donde nosotros
[01:19:47] hasta Ad URI y aquí es donde nosotros tenemos que pegar la URL completa. Ahora
[01:19:50] tenemos que pegar la URL completa. Ahora sí podemos bajar. y vamos a pinchar aquí
[01:19:53] sí podemos bajar. y vamos a pinchar aquí en el botón de create. Así que
[01:19:55] en el botón de create. Así que pinchamos. Y acá nosotros tenemos dos
[01:19:56] pinchamos. Y acá nosotros tenemos dos datos sumamente importantes. Estos tú
[01:19:58] datos sumamente importantes. Estos tú los estás viendo porque obviamente yo
[01:20:00] los estás viendo porque obviamente yo esto lo voy a borrar después de este
[01:20:01] esto lo voy a borrar después de este video, pero tú jamás deberías compartir
[01:20:04] video, pero tú jamás deberías compartir estos valores. Piensa que son como tu
[01:20:06] estos valores. Piensa que son como tu usuario y tu contraseña para Google
[01:20:08] usuario y tu contraseña para Google Sheets. Si lo llegas a compartir,
[01:20:09] Sheets. Si lo llegas a compartir, alguien va a poder entrar y va a poder
[01:20:11] alguien va a poder entrar y va a poder manipular absolutamente todos tus datos.
[01:20:12] manipular absolutamente todos tus datos. Así que yo voy a copiar mi client ID, me
[01:20:14] Así que yo voy a copiar mi client ID, me devuelvo a N8N y aquí donde aparece
[01:20:17] devuelvo a N8N y aquí donde aparece client ID voy a pegar. Luego nos vamos a
[01:20:19] client ID voy a pegar. Luego nos vamos a client secret, pincho acá, nos
[01:20:20] client secret, pincho acá, nos devolvemos a N8N y lo pegamos acá en
[01:20:23] devolvemos a N8N y lo pegamos acá en client secret. Y una vez que ya
[01:20:25] client secret. Y una vez que ya terminamos de pegar todas estas cosas,
[01:20:27] terminamos de pegar todas estas cosas, vamos a pinchar acá donde dice sign in
[01:20:30] vamos a pinchar acá donde dice sign in with Google. Podría ser que no haga
[01:20:32] with Google. Podría ser que no haga absolutamente nada porque te lo abre
[01:20:35] absolutamente nada porque te lo abre como un popup. Así que lo que tú tienes
[01:20:36] como un popup. Así que lo que tú tienes que hacer es habilitar los popup
[01:20:38] que hacer es habilitar los popup emergentes dentro de tu explorador. En
[01:20:40] emergentes dentro de tu explorador. En este caso, yo no tuve ningún problema,
[01:20:42] este caso, yo no tuve ningún problema, pero tú podrías tener que habilitarlos
[01:20:43] pero tú podrías tener que habilitarlos desde acá. Te va a aparecer algo acá o
[01:20:45] desde acá. Te va a aparecer algo acá o dependiendo del explorador te va a
[01:20:46] dependiendo del explorador te va a aparecer algo distinto. Ahora podemos
[01:20:47] aparecer algo distinto. Ahora podemos iniciar sesión. Google aún no ha
[01:20:49] iniciar sesión. Google aún no ha verificado la aplicación. Le vamos a dar
[01:20:51] verificado la aplicación. Le vamos a dar en continuar. Aquí tenemos los permisos.
[01:20:53] en continuar. Aquí tenemos los permisos. Yo voy a seleccionar select all o
[01:20:55] Yo voy a seleccionar select all o seleccionas cada uno manualmente. Da lo
[01:20:57] seleccionas cada uno manualmente. Da lo mismo. Bajamos y pinchamos en continue.
[01:20:59] mismo. Bajamos y pinchamos en continue. Y perfecto, nos hemos conectado con
[01:21:01] Y perfecto, nos hemos conectado con éxito. Ahora podemos cerrar esto y
[01:21:03] éxito. Ahora podemos cerrar esto y también vamos a cerrar esto que aparece
[01:21:05] también vamos a cerrar esto que aparece acá. Nuestro siguiente paso tiene que
[01:21:07] acá. Nuestro siguiente paso tiene que ser seleccionar un documento desde acá.
[01:21:09] ser seleccionar un documento desde acá. Pero para eso nosotros nos vamos a ir a
[01:21:11] Pero para eso nosotros nos vamos a ir a Google Drive o a Google Sheets y vamos a
[01:21:13] Google Drive o a Google Sheets y vamos a crear un documento el cual después
[01:21:15] crear un documento el cual después nosotros deberíamos poder encontrar acá.
[01:21:17] nosotros deberíamos poder encontrar acá. Ahora yo ya me encuentro dentro de
[01:21:18] Ahora yo ya me encuentro dentro de Google Sheets y voy a crear una nueva
[01:21:20] Google Sheets y voy a crear una nueva hoja de cálculo que se va a llamar N8N
[01:21:24] hoja de cálculo que se va a llamar N8N texto. Y ahora podemos pinchar afuera. Y
[01:21:26] texto. Y ahora podemos pinchar afuera. Y aquí viene un paso muy importante que yo
[01:21:28] aquí viene un paso muy importante que yo te lo voy a decir antes que NHN te
[01:21:30] te lo voy a decir antes que NHN te empiece a mostrar el error. Cuando
[01:21:31] empiece a mostrar el error. Cuando intentes insertar los datos se va a
[01:21:33] intentes insertar los datos se va a quejar porque te va a decir que le
[01:21:34] quejar porque te va a decir que le faltan los títulos a las columnas. Así
[01:21:36] faltan los títulos a las columnas. Así que tenemos que agregar títulos a las
[01:21:38] que tenemos que agregar títulos a las columnas. Nos vamos aquí a la primera
[01:21:39] columnas. Nos vamos aquí a la primera fila, a la A, y vamos a colocar nombre y
[01:21:42] fila, a la A, y vamos a colocar nombre y en la siguiente apellido. Si quieres
[01:21:44] en la siguiente apellido. Si quieres guardar más datos, por supuesto,
[01:21:45] guardar más datos, por supuesto, bienvenido eres a agregarlos como
[01:21:47] bienvenido eres a agregarlos como columnas. Esperamos a que guarde. Nos
[01:21:49] columnas. Esperamos a que guarde. Nos devolvemos ahora a nuestro workflow de
[01:21:51] devolvemos ahora a nuestro workflow de N8N. Y ahora aquí from documents podemos
[01:21:54] N8N. Y ahora aquí from documents podemos pinchar y aquí, por supuesto, podemos
[01:21:56] pinchar y aquí, por supuesto, podemos buscar. Yo voy a seleccionar este que
[01:21:58] buscar. Yo voy a seleccionar este que acabo de crear que dice N8N test.
[01:22:00] acabo de crear que dice N8N test. Después tenemos que indicar qué hoja de
[01:22:02] Después tenemos que indicar qué hoja de cálculo vamos a querer. Vamos a
[01:22:04] cálculo vamos a querer. Vamos a seleccionar sheet un. Si nosotros
[01:22:05] seleccionar sheet un. Si nosotros quisiéramos agregar más sheets, tenemos
[01:22:07] quisiéramos agregar más sheets, tenemos que devolvernos aquí a Google Sheet y
[01:22:09] que devolvernos aquí a Google Sheet y acá abajo donde tenemos Sheet 1, podemos
[01:22:12] acá abajo donde tenemos Sheet 1, podemos agregar una nueva pinchando acá o
[01:22:14] agregar una nueva pinchando acá o podemos directamente también cambiar el
[01:22:16] podemos directamente también cambiar el nombre seleccionando aquí mismo. Pero
[01:22:17] nombre seleccionando aquí mismo. Pero ahora nos vamos a devolver a N8N y ahora
[01:22:19] ahora nos vamos a devolver a N8N y ahora vamos a bajar y acá nosotros tenemos
[01:22:21] vamos a bajar y acá nosotros tenemos nombre y apellido. Vamos a seleccionar.
[01:22:23] nombre y apellido. Vamos a seleccionar. Así que vamos a agregar Nicolás Shurman.
[01:22:26] Así que vamos a agregar Nicolás Shurman. Y ahora podemos ejecutar este paso. Lo
[01:22:28] Y ahora podemos ejecutar este paso. Lo ejecutamos. Perfecto. Nos ha arrojado un
[01:22:30] ejecutamos. Perfecto. Nos ha arrojado un output. Vemos el nombre y el apellido.
[01:22:32] output. Vemos el nombre y el apellido. Ahora podemos irnos a Google Sheets para
[01:22:35] Ahora podemos irnos a Google Sheets para ver si es que este efectivamente los
[01:22:36] ver si es que este efectivamente los agregó. Y aquí podemos ver que ya se
[01:22:38] agregó. Y aquí podemos ver que ya se encuentran acá. Y esto, por supuesto,
[01:22:40] encuentran acá. Y esto, por supuesto, que funciona con variables dinámicas.
[01:22:42] que funciona con variables dinámicas. Así que yo me voy a venir acá. Vamos a
[01:22:44] Así que yo me voy a venir acá. Vamos a agregar un set. Dentro de set vamos a
[01:22:47] agregar un set. Dentro de set vamos a colocar nombre, Nicolás. Vamos a agregar
[01:22:49] colocar nombre, Nicolás. Vamos a agregar un nuevo campo que va a decir apellido.
[01:22:52] un nuevo campo que va a decir apellido. Y le vamos a colocar chanchito. Y ahora
[01:22:54] Y le vamos a colocar chanchito. Y ahora podemos ejecutar este paso. Y aquí
[01:22:55] podemos ejecutar este paso. Y aquí aparece. Vamos a cerrarlo ahora y vamos
[01:22:57] aparece. Vamos a cerrarlo ahora y vamos a romper la conexión entre estos dos.
[01:22:59] a romper la conexión entre estos dos. Elimino acá y elimino este. Ahora vamos
[01:23:01] Elimino acá y elimino este. Ahora vamos a agarrar el trigger manual. Vamos a
[01:23:03] a agarrar el trigger manual. Vamos a conectar estos dos y finalmente vamos a
[01:23:06] conectar estos dos y finalmente vamos a conectar este set con nuestro Google
[01:23:09] conectar este set con nuestro Google Sheet. Ahora vamos a ejecutar nuestro
[01:23:10] Sheet. Ahora vamos a ejecutar nuestro workflow. Y se nos olvidó algo muy
[01:23:12] workflow. Y se nos olvidó algo muy importante y es seleccionar los datos
[01:23:14] importante y es seleccionar los datos desde acá. Así que lo que voy a hacer es
[01:23:16] desde acá. Así que lo que voy a hacer es bajar hasta aquí donde tenemos nombre y
[01:23:18] bajar hasta aquí donde tenemos nombre y apellido. Voy a seleccionar este campo
[01:23:20] apellido. Voy a seleccionar este campo de nombre y lo voy a poner acá. Y voy a
[01:23:22] de nombre y lo voy a poner acá. Y voy a hacer lo mismo con el de apellido.
[01:23:24] hacer lo mismo con el de apellido. Selecciono apellido y lo arrastro hasta
[01:23:26] Selecciono apellido y lo arrastro hasta acá. Vamos a sacar Shurman. Y ahora
[01:23:28] acá. Vamos a sacar Shurman. Y ahora podemos ejecutar este paso de nuevo.
[01:23:30] podemos ejecutar este paso de nuevo. Perfecto. Y si nos devolvemos aquí a
[01:23:32] Perfecto. Y si nos devolvemos aquí a Google Sheets, deberíamos ver Nicolás
[01:23:34] Google Sheets, deberíamos ver Nicolás Shurman agregado dos veces, pero también
[01:23:36] Shurman agregado dos veces, pero también tenemos a Nicolás Chanchito, el cual fue
[01:23:37] tenemos a Nicolás Chanchito, el cual fue agregado de manera dinámica. Y esta fue
[01:23:39] agregado de manera dinámica. Y esta fue la integración con Google Sheets. ¿Viste
[01:23:41] la integración con Google Sheets. ¿Viste que fue fácil? Ahora podemos pasar a la
[01:23:42] que fue fácil? Ahora podemos pasar a la del siguiente video. [música]
[01:23:47] Continuando con las integraciones de
[01:23:49] Continuando con las integraciones de Google, en este video vamos a ver cómo
[01:23:51] Google, en este video vamos a ver cómo podemos integrar Gmail dentro de N8N.
[01:23:54] podemos integrar Gmail dentro de N8N. Nuevamente dentro de nuestro panel de
[01:23:55] Nuevamente dentro de nuestro panel de N8N, donde se encuentra el overview,
[01:23:59] N8N, donde se encuentra el overview, nosotros vamos a tener distintas
[01:24:00] nosotros vamos a tener distintas opciones. Acá nosotros tenemos
[01:24:01] opciones. Acá nosotros tenemos workflows, también tenemos credentials,
[01:24:03] workflows, también tenemos credentials, executions, variables y data tables.
[01:24:06] executions, variables y data tables. Nosotros también podemos pasar a
[01:24:07] Nosotros también podemos pasar a gestionar nuestras credenciales dentro
[01:24:10] gestionar nuestras credenciales dentro de esta pestaña. Si nosotros pinchamos
[01:24:11] de esta pestaña. Si nosotros pinchamos aquí en credentials, vas a poder ver que
[01:24:13] aquí en credentials, vas a poder ver que yo ya tengo una de Gmail y también otra
[01:24:15] yo ya tengo una de Gmail y también otra de Open AI. Si a ti te aparece la de
[01:24:18] de Open AI. Si a ti te aparece la de Google Sheets y a mí no, es porque yo la
[01:24:20] Google Sheets y a mí no, es porque yo la acabo de eliminar. Yo te dije que iba a
[01:24:21] acabo de eliminar. Yo te dije que iba a eliminar mis credenciales después del
[01:24:22] eliminar mis credenciales después del video pasado. Así que lo que tenemos que
[01:24:24] video pasado. Así que lo que tenemos que hacer ahora es devolvernos a Overview y
[01:24:26] hacer ahora es devolvernos a Overview y voy a volver a pinchar acá dentro de mi
[01:24:28] voy a volver a pinchar acá dentro de mi Workflow 3, que es el mismo que
[01:24:30] Workflow 3, que es el mismo que estábamos trabajando antes. Aquí se
[01:24:32] estábamos trabajando antes. Aquí se encuentra el de Google Sheet. Yo lo voy
[01:24:33] encuentra el de Google Sheet. Yo lo voy a eliminar y voy a aprovechar de agregar
[01:24:36] a eliminar y voy a aprovechar de agregar uno nuevo de Gmail. Vamos a seleccionar
[01:24:39] uno nuevo de Gmail. Vamos a seleccionar Gmail. Y acá nosotros tenemos varias
[01:24:41] Gmail. Y acá nosotros tenemos varias opciones. Podemos agregar etiquetas a
[01:24:42] opciones. Podemos agregar etiquetas a los mensajes, podemos eliminar un
[01:24:44] los mensajes, podemos eliminar un mensaje, podemos ir a buscar un mensaje,
[01:24:46] mensaje, podemos ir a buscar un mensaje, muchos mensajes, marcarlos como leídos,
[01:24:49] muchos mensajes, marcarlos como leídos, pero el que a nosotros nos interesa en
[01:24:51] pero el que a nosotros nos interesa en este momento es el de send a message.
[01:24:52] este momento es el de send a message. Este nosotros lo vamos a utilizar para
[01:24:54] Este nosotros lo vamos a utilizar para poder enviar correos electrónicos. Por
[01:24:56] poder enviar correos electrónicos. Por alguna razón en Gmail, cuando nosotros
[01:24:57] alguna razón en Gmail, cuando nosotros queremos enviar un correo, este lo trata
[01:24:59] queremos enviar un correo, este lo trata como si fuese un mensaje. Así que
[01:25:01] como si fuese un mensaje. Así que tenemos que utilizar send message. Acá
[01:25:04] tenemos que utilizar send message. Acá yo lo que voy a hacer es te voy a
[01:25:05] yo lo que voy a hacer es te voy a enseñar a configurar nuevamente las
[01:25:06] enseñar a configurar nuevamente las credenciales. Así que voy a pinchar acá
[01:25:08] credenciales. Así que voy a pinchar acá en create new credential. Vuelvo a
[01:25:10] en create new credential. Vuelvo a seleccionar aquí o out. O out. Vuelvo a
[01:25:12] seleccionar aquí o out. O out. Vuelvo a copiar esta URL. Como puedes ver, ha
[01:25:14] copiar esta URL. Como puedes ver, ha sido exactamente la misma en todo
[01:25:16] sido exactamente la misma en todo momento. Y ahora yo tengo que venirme
[01:25:19] momento. Y ahora yo tengo que venirme acá en una nueva pestaña nuevamente a
[01:25:22] acá en una nueva pestaña nuevamente a Google Cloud. Aquí tenemos que volver a
[01:25:24] Google Cloud. Aquí tenemos que volver a ingresar a Google Cloud Console y una
[01:25:26] ingresar a Google Cloud Console y una vez acá adentro vamos a volver a bajar
[01:25:29] vez acá adentro vamos a volver a bajar aquí hasta AppIs and Services. Hinchamos
[01:25:32] aquí hasta AppIs and Services. Hinchamos acá. Antes de continuar tenemos que
[01:25:34] acá. Antes de continuar tenemos que venir nuevamente a Library porque
[01:25:36] venir nuevamente a Library porque tenemos que habilitar un nuevo servicio.
[01:25:39] tenemos que habilitar un nuevo servicio. Pinchamos acá y aquí dentro de Search
[01:25:41] Pinchamos acá y aquí dentro de Search for Google API and Services vamos a
[01:25:43] for Google API and Services vamos a escribir Gmail y vamos a presionar
[01:25:45] escribir Gmail y vamos a presionar enter. Después seleccionamos Gmail API y
[01:25:49] enter. Después seleccionamos Gmail API y aquí nosotros deberíamos tener
[01:25:50] aquí nosotros deberíamos tener nuevamente la opción para poder
[01:25:51] nuevamente la opción para poder habilitar esta API. Luego de haberla
[01:25:53] habilitar esta API. Luego de haberla habilitado, ahora nos podemos devolver a
[01:25:56] habilitado, ahora nos podemos devolver a crear nuestra credencial. Pinchamos aquí
[01:25:59] crear nuestra credencial. Pinchamos aquí en API and Services. Pincho aquí en
[01:26:01] en API and Services. Pincho aquí en credentials. Ahora nos podemos ir acá a
[01:26:04] credentials. Ahora nos podemos ir acá a create credentials y seleccionamos
[01:26:06] create credentials y seleccionamos nuevamente Oout. Application type tiene
[01:26:09] nuevamente Oout. Application type tiene que ser nuevamente web application. Le
[01:26:11] que ser nuevamente web application. Le volvemos a agregar un nombre. Gmail N8N
[01:26:14] volvemos a agregar un nombre. Gmail N8N le voy a poner yo. Aquí agregamos ad URI
[01:26:16] le voy a poner yo. Aquí agregamos ad URI y seguimos el mismo proceso de antes.
[01:26:18] y seguimos el mismo proceso de antes. Así que vamos a pegar la URL, pero
[01:26:20] Así que vamos a pegar la URL, pero eliminamos hasta el puntoio o el punto
[01:26:23] eliminamos hasta el puntoio o el punto en el caso si es que tú contrataste
[01:26:24] en el caso si es que tú contrataste un.com y aquí en aduri es donde pegamos
[01:26:27] un.com y aquí en aduri es donde pegamos la URL completa y ahora pinchamos en
[01:26:29] la URL completa y ahora pinchamos en create. Aquí es donde nuevamente tenemos
[01:26:31] create. Aquí es donde nuevamente tenemos que agregar nuestro client ID. Donde lo
[01:26:33] que agregar nuestro client ID. Donde lo copiamos. Vamos a pegarlo acá donde dice
[01:26:35] copiamos. Vamos a pegarlo acá donde dice client ID y luego aquí donde dice client
[01:26:38] client ID y luego aquí donde dice client secret lo volvemos a copiar. Bajamos y
[01:26:40] secret lo volvemos a copiar. Bajamos y lo pegamos acá en client secret. Tenemos
[01:26:43] lo pegamos acá en client secret. Tenemos que iniciar nuevamente sesión con
[01:26:45] que iniciar nuevamente sesión con Google. Recuerda que esto es un popup,
[01:26:46] Google. Recuerda que esto es un popup, así que podría ser bloqueado. Tienes que
[01:26:48] así que podría ser bloqueado. Tienes que habilitarlo. Pinchamos acá y luego de
[01:26:50] habilitarlo. Pinchamos acá y luego de seleccionado el correo electrónico, acá
[01:26:52] seleccionado el correo electrónico, acá le tenemos que entregar permisos. Yo voy
[01:26:54] le tenemos que entregar permisos. Yo voy a pinchar acá en select all y luego
[01:26:56] a pinchar acá en select all y luego pinchamos en continue. Perfecto.
[01:26:57] pinchamos en continue. Perfecto. Conexión exitosa. Ahora podemos cerrar
[01:27:00] Conexión exitosa. Ahora podemos cerrar acá. También podemos cerrar esto. Y
[01:27:02] acá. También podemos cerrar esto. Y ahora podemos indicar a quién nosotros
[01:27:04] ahora podemos indicar a quién nosotros le queremos enviar un correo
[01:27:05] le queremos enviar un correo electrónico. Yo voy a decir que me lo
[01:27:07] electrónico. Yo voy a decir que me lo voy a enviar a mí, a Nicolás @holamundo.
[01:27:10] voy a enviar a mí, a Nicolás @holamundo. Holaamundo. Aquí nosotros podemos enviar
[01:27:13] Holaamundo. Aquí nosotros podemos enviar un HTML o también podemos enviar
[01:27:15] un HTML o también podemos enviar solamente texto plano. Yo voy a enviar
[01:27:16] solamente texto plano. Yo voy a enviar texto plano. Por supuesto que si tú
[01:27:18] texto plano. Por supuesto que si tú quieres enviar un correo electrónico que
[01:27:20] quieres enviar un correo electrónico que sea más bonito, que contenga un reporte
[01:27:21] sea más bonito, que contenga un reporte y esas cosas, acá es donde tú puedes
[01:27:23] y esas cosas, acá es donde tú puedes incluir ese HTML, pero yo lo voy a dejar
[01:27:25] incluir ese HTML, pero yo lo voy a dejar como texto plano, mensaje del correo
[01:27:27] como texto plano, mensaje del correo electrónico, voy a decir. Y ahora ya
[01:27:29] electrónico, voy a decir. Y ahora ya podemos pinchar aquí en execute step.
[01:27:32] podemos pinchar aquí en execute step. Aquí nos ha dicho enviado. Ahora podemos
[01:27:33] Aquí nos ha dicho enviado. Ahora podemos revisar nuestro correo electrónico. Y
[01:27:35] revisar nuestro correo electrónico. Y aquí nosotros podemos ver que el correo
[01:27:37] aquí nosotros podemos ver que el correo electrónico ha llegado con éxito. Y nos
[01:27:38] electrónico ha llegado con éxito. Y nos está diciendo, "Thismail was sent."
[01:27:42] está diciendo, "Thismail was sent." Si ese mensaje que aparece al final, que
[01:27:44] Si ese mensaje que aparece al final, que el mensaje fue enviado con N8N, nosotros
[01:27:47] el mensaje fue enviado con N8N, nosotros no lo quisiéramos mostrar, podemos venir
[01:27:49] no lo quisiéramos mostrar, podemos venir acá donde dice add option append n
[01:27:52] acá donde dice add option append n attribution y desmarcamos esta opción.
[01:27:54] attribution y desmarcamos esta opción. Luego, cuando enviemos nuevamente este
[01:27:56] Luego, cuando enviemos nuevamente este correo electrónico, vamos a ver como esa
[01:27:58] correo electrónico, vamos a ver como esa base o ese pie de correo electrónico ya
[01:28:00] base o ese pie de correo electrónico ya no nos va a salir. Y así es como se
[01:28:02] no nos va a salir. Y así es como se utiliza la integración de Gmail. ¿Viste
[01:28:04] utiliza la integración de Gmail. ¿Viste que fue fácil? La siguiente integración
[01:28:06] que fue fácil? La siguiente integración es la de Slack.
[01:28:11] Muchas veces cuando nosotros estamos
[01:28:12] Muchas veces cuando nosotros estamos terminando, por ejemplo, un proceso de
[01:28:14] terminando, por ejemplo, un proceso de ventas que llegó una persona a un sitio
[01:28:16] ventas que llegó una persona a un sitio web, logramos capturarlo, no vamos a
[01:28:19] web, logramos capturarlo, no vamos a querer enviar esto ni por correo
[01:28:20] querer enviar esto ni por correo electrónico ni por un Drive. De pronto
[01:28:22] electrónico ni por un Drive. De pronto podríamos querer enviarlo por slack para
[01:28:24] podríamos querer enviarlo por slack para que alguien del equipo pueda tomar ese
[01:28:27] que alguien del equipo pueda tomar ese lead de venta. Así que eso es
[01:28:29] lead de venta. Así que eso es exactamente lo que vamos a hacer ahora.
[01:28:30] exactamente lo que vamos a hacer ahora. Vamos a ver cómo nos podemos integrar
[01:28:32] Vamos a ver cómo nos podemos integrar con Slack. Nuevamente acá dentro de
[01:28:34] con Slack. Nuevamente acá dentro de nuestro workflow. Vamos aquí a pinchar
[01:28:36] nuestro workflow. Vamos aquí a pinchar el símbolo de más y vamos a buscar
[01:28:39] el símbolo de más y vamos a buscar slack. Aquí vamos a seleccionar esto que
[01:28:41] slack. Aquí vamos a seleccionar esto que aparece acá y vamos a buscar para poder
[01:28:43] aparece acá y vamos a buscar para poder enviar un mensaje. Si no te aparece o
[01:28:46] enviar un mensaje. Si no te aparece o está haciendo como yo que lo estoy
[01:28:47] está haciendo como yo que lo estoy buscando dentro del listado,
[01:28:49] buscando dentro del listado, sencillamente escribes acá message y te
[01:28:52] sencillamente escribes acá message y te debería aparecer, aquí está, es
[01:28:54] debería aparecer, aquí está, es justamente el primero que aparece en el
[01:28:55] justamente el primero que aparece en el listado, send message. Así que vamos a
[01:28:57] listado, send message. Así que vamos a seleccionar este y acá vamos a
[01:28:59] seleccionar este y acá vamos a configurar la credencial. Quiero que te
[01:29:01] configurar la credencial. Quiero que te fijes que todas estas integraciones
[01:29:03] fijes que todas estas integraciones están siguiendo más o menos el mismo
[01:29:05] están siguiendo más o menos el mismo proceso, donde nosotros abrimos,
[01:29:06] proceso, donde nosotros abrimos, seleccionamos una credencial y abajo
[01:29:08] seleccionamos una credencial y abajo finalmente la operación que nosotros
[01:29:09] finalmente la operación que nosotros vamos a realizar. Vamos a seleccionar
[01:29:11] vamos a realizar. Vamos a seleccionar acá para poder crear una nueva
[01:29:13] acá para poder crear una nueva credencial y vamos a utilizar acá access
[01:29:15] credencial y vamos a utilizar acá access token. Nosotros podemos venir aquí a
[01:29:17] token. Nosotros podemos venir aquí a Open Docs y hacer el paso uno a uno. O
[01:29:20] Open Docs y hacer el paso uno a uno. O puedes hacer lo que voy a hacer yo, que
[01:29:21] puedes hacer lo que voy a hacer yo, que según yo es bastante más rápido y no
[01:29:23] según yo es bastante más rápido y no vamos a tener que leer toda la
[01:29:24] vamos a tener que leer toda la documentación para poder hacer
[01:29:25] documentación para poder hacer exactamente lo mismo. Buscas dentro de
[01:29:27] exactamente lo mismo. Buscas dentro de Google Slack Apps y te vienes aquí a
[01:29:30] Google Slack Apps y te vienes aquí a esto que dice Slack API Applications.
[01:29:32] esto que dice Slack API Applications. Una vez acá, te vienes a create New App.
[01:29:35] Una vez acá, te vienes a create New App. Aquí no vas a seleccionar from manifest,
[01:29:36] Aquí no vas a seleccionar from manifest, sino que vas a seleccionar from scratch.
[01:29:39] sino que vas a seleccionar from scratch. Aquí tú le vas a entregar tu nombre. Yo
[01:29:40] Aquí tú le vas a entregar tu nombre. Yo le voy a colocar agente N8N. Aquí
[01:29:44] le voy a colocar agente N8N. Aquí seleccionamos el workspace, que vendría
[01:29:46] seleccionamos el workspace, que vendría siendo en mi caso el de Hola Mundo y
[01:29:48] siendo en mi caso el de Hola Mundo y vamos a pinchar acá en create app. Una
[01:29:50] vamos a pinchar acá en create app. Una vez que nos encontramos acá, por
[01:29:51] vez que nos encontramos acá, por supuesto que el primer paso sería
[01:29:53] supuesto que el primer paso sería instalar la aplicación, pero si nosotros
[01:29:55] instalar la aplicación, pero si nosotros intentamos instalarla, nos va a decir
[01:29:57] intentamos instalarla, nos va a decir que primero tenemos que agregarle un
[01:29:58] que primero tenemos que agregarle un permiso a nuestra aplicación, si no esta
[01:30:00] permiso a nuestra aplicación, si no esta no va a poder hacer absolutamente nada.
[01:30:02] no va a poder hacer absolutamente nada. Así que nos vamos a venir acá a
[01:30:04] Así que nos vamos a venir acá a Permission Scope. Ahora vamos a bajar
[01:30:07] Permission Scope. Ahora vamos a bajar dentro de los alloutros
[01:30:11] vamos a seguir. Seguimos. Y aquí donde
[01:30:13] vamos a seguir. Seguimos. Y aquí donde dice botken scopes, vamos a seleccionar
[01:30:16] dice botken scopes, vamos a seleccionar add and o out scope. Pinchamos acá y acá
[01:30:19] add and o out scope. Pinchamos acá y acá lo que nosotros queremos es que nuestro
[01:30:21] lo que nosotros queremos es que nuestro bot pueda enviar mensajes. No queremos
[01:30:24] bot pueda enviar mensajes. No queremos que lea canales, no queremos que
[01:30:25] que lea canales, no queremos que administre nada, solamente que envíe
[01:30:26] administre nada, solamente que envíe mensajes y ni siquiera queremos que lea
[01:30:29] mensajes y ni siquiera queremos que lea todos los canales que tiene nuestra
[01:30:30] todos los canales que tiene nuestra aplicación de Slack. ¿Por qué? Porque
[01:30:32] aplicación de Slack. ¿Por qué? Porque nosotros le vamos a pasar después el ID
[01:30:34] nosotros le vamos a pasar después el ID del canal que nosotros queremos que este
[01:30:36] del canal que nosotros queremos que este pueda enviarle mensajes. Así que vamos a
[01:30:38] pueda enviarle mensajes. Así que vamos a escribir acá message y aquí abajo
[01:30:40] escribir acá message y aquí abajo nosotros tenemos la opción de chat WR,
[01:30:43] nosotros tenemos la opción de chat WR, send messages as agente N8N. Así que
[01:30:47] send messages as agente N8N. Así que vamos a pinchar en esto y esto nos va a
[01:30:48] vamos a pinchar en esto y esto nos va a permitir a nosotros poder enviar
[01:30:49] permitir a nosotros poder enviar mensajes. Esperamos a que esto se
[01:30:51] mensajes. Esperamos a que esto se refresque y ahora podemos instalar al
[01:30:54] refresque y ahora podemos instalar al workspace de Hola Mundo. Así que
[01:30:56] workspace de Hola Mundo. Así que pinchamos acá, esperamos un poco, nos va
[01:30:58] pinchamos acá, esperamos un poco, nos va a indicar que tenemos que entregarle
[01:30:59] a indicar que tenemos que entregarle permisos, así que vamos a darle acá en
[01:31:01] permisos, así que vamos a darle acá en allow. Perfecto. Y con eso nosotros ya
[01:31:03] allow. Perfecto. Y con eso nosotros ya hemos instalado la aplicación, pero
[01:31:05] hemos instalado la aplicación, pero ahora lo que necesitamos es un token
[01:31:07] ahora lo que necesitamos es un token para poder interactuar con Slack desde
[01:31:08] para poder interactuar con Slack desde N8N. Así que vamos a bajar y acá donde
[01:31:12] N8N. Así que vamos a bajar y acá donde tenemos Ooutkens es donde nosotros vamos
[01:31:14] tenemos Ooutkens es donde nosotros vamos a copiar esto. Una vez copiado, nos
[01:31:16] a copiar esto. Una vez copiado, nos podemos devolver ahora a N8N y ahora
[01:31:18] podemos devolver ahora a N8N y ahora podemos pegar nuestro access token.
[01:31:21] podemos pegar nuestro access token. Ahora sí vamos a bajar. No nos falta
[01:31:23] Ahora sí vamos a bajar. No nos falta absolutamente nada más por ingresar, así
[01:31:24] absolutamente nada más por ingresar, así que podemos pinchar en save. Y esto, si
[01:31:27] que podemos pinchar en save. Y esto, si todo salió bien, nosotros deberíamos ver
[01:31:29] todo salió bien, nosotros deberíamos ver cómo nos muestra connection tested
[01:31:31] cómo nos muestra connection tested successfully. Así que ahora podemos
[01:31:32] successfully. Así que ahora podemos cerrar acá y ahora podemos indicarle qué
[01:31:35] cerrar acá y ahora podemos indicarle qué es lo que queremos que haga. Vamos a
[01:31:36] es lo que queremos que haga. Vamos a decir que queremos que el recurso que
[01:31:38] decir que queremos que el recurso que tiene que manipular o el parámetro
[01:31:40] tiene que manipular o el parámetro vendría siendo mensaje. Vamos a dejar
[01:31:41] vendría siendo mensaje. Vamos a dejar que la operación es send y ahora tenemos
[01:31:44] que la operación es send y ahora tenemos que indicar send message to. O sea, a
[01:31:46] que indicar send message to. O sea, a quién nosotros le vamos a enviar el
[01:31:47] quién nosotros le vamos a enviar el mensaje. Acá podemos elegir un usuario o
[01:31:50] mensaje. Acá podemos elegir un usuario o un channel. Yo voy a elegir directamente
[01:31:51] un channel. Yo voy a elegir directamente un canal. Y aquí nosotros podemos
[01:31:53] un canal. Y aquí nosotros podemos decidir desde una lista, pero si
[01:31:55] decidir desde una lista, pero si nosotros pinchamos acá no nos va a
[01:31:56] nosotros pinchamos acá no nos va a mostrar nada porque nosotros no le
[01:31:58] mostrar nada porque nosotros no le entregamos permisos para que este pueda
[01:32:00] entregamos permisos para que este pueda leer los canales. Así que si tú quieres
[01:32:02] leer los canales. Así que si tú quieres ver también los canales, vas a tener que
[01:32:04] ver también los canales, vas a tener que entregarle ese permiso. Pero yo lo voy a
[01:32:05] entregarle ese permiso. Pero yo lo voy a hacer por el ID del canal. Así que aquí
[01:32:08] hacer por el ID del canal. Así que aquí donde dice from listar y le voy a pasar
[01:32:11] donde dice from listar y le voy a pasar by ID. Ahora me voy a ir a mi aplicación
[01:32:14] by ID. Ahora me voy a ir a mi aplicación de Slack y aquí dentro de los canales yo
[01:32:16] de Slack y aquí dentro de los canales yo ya creé uno que se llama N8N. Si no lo
[01:32:19] ya creé uno que se llama N8N. Si no lo tienes, tú puedes venir acá, haces clic
[01:32:21] tienes, tú puedes venir acá, haces clic derecho, pinchas en create y create
[01:32:23] derecho, pinchas en create y create channel, le asignas el nombre que tú
[01:32:24] channel, le asignas el nombre que tú quieras y luego de haberlo creado,
[01:32:26] quieras y luego de haberlo creado, puedes venir acá a view details, vas a
[01:32:29] puedes venir acá a view details, vas a bajar hasta el final donde te aparece el
[01:32:32] bajar hasta el final donde te aparece el ID del canal y vas a copiar esto. Y una
[01:32:34] ID del canal y vas a copiar esto. Y una vez que lo copiaste, nos vamos a
[01:32:35] vez que lo copiaste, nos vamos a devolver a N8N. Ahora donde dice acá by
[01:32:38] devolver a N8N. Ahora donde dice acá by ID vamos a pegar este ID y le podemos
[01:32:41] ID vamos a pegar este ID y le podemos indicar que vamos a enviar un simple
[01:32:42] indicar que vamos a enviar un simple mensaje de texto o también podemos
[01:32:44] mensaje de texto o también podemos enviar uno por los bloques de Slack. Yo
[01:32:47] enviar uno por los bloques de Slack. Yo lo voy a dejar como un mensaje de texto
[01:32:48] lo voy a dejar como un mensaje de texto simple. Y acá yo le voy a decir, "Hola
[01:32:51] simple. Y acá yo le voy a decir, "Hola mundo, saludos desde N8N." Y ahora
[01:32:54] mundo, saludos desde N8N." Y ahora nosotros podemos pinchar en execute
[01:32:56] nosotros podemos pinchar en execute step. Vamos a pinchar acá y nos ha
[01:32:58] step. Vamos a pinchar acá y nos ha arrojado un error. Nos está diciendo que
[01:33:00] arrojado un error. Nos está diciendo que no nos encontramos dentro del canal.
[01:33:03] no nos encontramos dentro del canal. Entonces, tenemos que devolvernos a
[01:33:04] Entonces, tenemos que devolvernos a Slack. Ahora podemos cerrar esto y
[01:33:07] Slack. Ahora podemos cerrar esto y tenemos que agregar nuestra aplicación
[01:33:09] tenemos que agregar nuestra aplicación de agente N8N. Así que vamos a colocar
[01:33:11] de agente N8N. Así que vamos a colocar un slash hacia delante y vamos a
[01:33:13] un slash hacia delante y vamos a seleccionar la segunda opción de agregar
[01:33:14] seleccionar la segunda opción de agregar aplicaciones a este canal. La
[01:33:16] aplicaciones a este canal. La seleccionamos y ahora vamos a
[01:33:18] seleccionamos y ahora vamos a seleccionar agente N8N. Así que
[01:33:19] seleccionar agente N8N. Así que pinchamos acá en AD. Perfecto, ya lo
[01:33:21] pinchamos acá en AD. Perfecto, ya lo hemos agregado. Vamos a volver a
[01:33:23] hemos agregado. Vamos a volver a intentarlo ahora dentro de N8N. Así que
[01:33:25] intentarlo ahora dentro de N8N. Así que nuevamente acá vuelvo a pinchar en
[01:33:27] nuevamente acá vuelvo a pinchar en execute step. Y ahora vemos que el
[01:33:29] execute step. Y ahora vemos que el mensaje se ha enviado con éxito. Por
[01:33:30] mensaje se ha enviado con éxito. Por supuesto que los mensajes de Slack
[01:33:31] supuesto que los mensajes de Slack también funcionan con nuestras variables
[01:33:33] también funcionan con nuestras variables dinámicas, así que podemos aprovechar de
[01:33:35] dinámicas, así que podemos aprovechar de agregar una a nuestro mensaje. Aquí yo
[01:33:36] agregar una a nuestro mensaje. Aquí yo voy a agarrar nombre y lo voy a poner
[01:33:38] voy a agarrar nombre y lo voy a poner aquí. Y como puedes ver, ya apareció.
[01:33:40] aquí. Y como puedes ver, ya apareció. Acá podemos volver a pinchar aquí en
[01:33:42] Acá podemos volver a pinchar aquí en execute step y vamos a revisar que el
[01:33:44] execute step y vamos a revisar que el mensaje se haya enviado. Y aquí nosotros
[01:33:46] mensaje se haya enviado. Y aquí nosotros vemos que se nos ha entregado el mensaje
[01:33:47] vemos que se nos ha entregado el mensaje de hola mundo, saludos desde N8N y
[01:33:50] de hola mundo, saludos desde N8N y también nos está aceptando nuestra
[01:33:51] también nos está aceptando nuestra variable dinámica que contenía mi nombre
[01:33:53] variable dinámica que contenía mi nombre de Nicolás, pero nos está mostrando este
[01:33:55] de Nicolás, pero nos está mostrando este mensaje de acá abajo, automated with
[01:33:57] mensaje de acá abajo, automated with this NHN workflow. Si nosotros pinchamos
[01:34:00] this NHN workflow. Si nosotros pinchamos acá, vamos a poder ir directamente a ese
[01:34:02] acá, vamos a poder ir directamente a ese workflow. Pero yo no quiero mostrar eso
[01:34:04] workflow. Pero yo no quiero mostrar eso porque encuentro que se ve sucio y
[01:34:06] porque encuentro que se ve sucio y además de todas maneras nosotros
[01:34:08] además de todas maneras nosotros deberíamos saber dónde se encuentra ese
[01:34:09] deberíamos saber dónde se encuentra ese servidor. Así que de regreso acá en N8N
[01:34:12] servidor. Así que de regreso acá en N8N vamos a bajar y aquí donde aparece Ad
[01:34:14] vamos a bajar y aquí donde aparece Ad option vamos a buscar include link to
[01:34:17] option vamos a buscar include link to workflow y lo vamos a pinchar. Esta
[01:34:19] workflow y lo vamos a pinchar. Esta opción se encuentra marcada por defecto,
[01:34:22] opción se encuentra marcada por defecto, así que vamos a desmarcarla y vamos a
[01:34:24] así que vamos a desmarcarla y vamos a volver a ejecutar este paso. Pinchamos,
[01:34:27] volver a ejecutar este paso. Pinchamos, vemos que el mensaje fue de éxito. Y
[01:34:28] vemos que el mensaje fue de éxito. Y ahora de regreso acá en NN podemos ver
[01:34:31] ahora de regreso acá en NN podemos ver que aparece hola mundo, saludos desde
[01:34:33] que aparece hola mundo, saludos desde N8N Nicolás, pero ya no aparece ese
[01:34:35] N8N Nicolás, pero ya no aparece ese mensaje de que esto ha sido automatizado
[01:34:37] mensaje de que esto ha sido automatizado con N8N y así de fácil fue automatizar
[01:34:39] con N8N y así de fácil fue automatizar con N8N. En el siguiente video vamos a
[01:34:42] con N8N. En el siguiente video vamos a integrarnos con Discord.
[01:34:46] En este video vamos a continuar viendo
[01:34:48] En este video vamos a continuar viendo nuestra integración con Discord, porque
[01:34:50] nuestra integración con Discord, porque a veces los equipos no trabajan con
[01:34:52] a veces los equipos no trabajan con Slacks, sino que prefieren trabajar con
[01:34:53] Slacks, sino que prefieren trabajar con Discord. Así que tenemos que enviarle
[01:34:55] Discord. Así que tenemos que enviarle los mensajes también a ellos. Dentro de
[01:34:57] los mensajes también a ellos. Dentro de nuestro panel de N8N vamos a venir a
[01:34:59] nuestro panel de N8N vamos a venir a agregar una nueva integración y esta se
[01:35:02] agregar una nueva integración y esta se va a llamar Discord. Seleccionamos esto
[01:35:04] va a llamar Discord. Seleccionamos esto y vamos a escribir message para poder
[01:35:07] y vamos a escribir message para poder enviar un mensaje. Vamos a seleccionar
[01:35:09] enviar un mensaje. Vamos a seleccionar este que aparece acá de send a message.
[01:35:11] este que aparece acá de send a message. Una vez acá, hay algo muy importante que
[01:35:14] Una vez acá, hay algo muy importante que tenemos que hacer y es cambiar el tipo
[01:35:15] tenemos que hacer y es cambiar el tipo de conexión. Nosotros lo podemos hacer
[01:35:17] de conexión. Nosotros lo podemos hacer con bot token, pero vamos a preferir
[01:35:20] con bot token, pero vamos a preferir utilizar o out. O out. Y una vez que lo
[01:35:22] utilizar o out. O out. Y una vez que lo seleccionamos, ahora podemos venir acá a
[01:35:24] seleccionamos, ahora podemos venir acá a select credential y vamos a crear una
[01:35:26] select credential y vamos a crear una nueva credencial para Discord. Yo voy a
[01:35:28] nueva credencial para Discord. Yo voy a aprovechar de copiar la URL ahora porque
[01:35:30] aprovechar de copiar la URL ahora porque la vamos a necesitar dentro de poco y
[01:35:31] la vamos a necesitar dentro de poco y vamos a abrir acá la documentación
[01:35:33] vamos a abrir acá la documentación dentro de una pestaña nueva. Nos venimos
[01:35:35] dentro de una pestaña nueva. Nos venimos acá y lo que yo quiero buscar en
[01:35:38] acá y lo que yo quiero buscar en específico es un link para poder crear
[01:35:40] específico es un link para poder crear una aplicación, pero ese nosotros lo
[01:35:42] una aplicación, pero ese nosotros lo sacamos acá del portal de desarrollo de
[01:35:44] sacamos acá del portal de desarrollo de Discord. Así que vamos a abrir esto de
[01:35:46] Discord. Así que vamos a abrir esto de acá. Nos va a pedir iniciar sesión en el
[01:35:49] acá. Nos va a pedir iniciar sesión en el caso de que no tengamos la sesión
[01:35:50] caso de que no tengamos la sesión iniciada. Y acá yo le voy a colocar bot
[01:35:53] iniciada. Y acá yo le voy a colocar bot n8n.
[01:35:54] n8n. Luego pinchamos acá, que estamos de
[01:35:56] Luego pinchamos acá, que estamos de acuerdo con los términos y condiciones,
[01:35:57] acuerdo con los términos y condiciones, y pinchamos en create. Nos va a
[01:35:59] y pinchamos en create. Nos va a preguntar si somos humanos. Le vamos a
[01:36:00] preguntar si somos humanos. Le vamos a decir que sí. Aquí nosotros hemos
[01:36:02] decir que sí. Aquí nosotros hemos llegado a la página de información
[01:36:04] llegado a la página de información general de nuestro bot. Y después de
[01:36:07] general de nuestro bot. Y después de obtener esta información general, lo que
[01:36:08] obtener esta información general, lo que vamos a hacer es venirnos acá a donde
[01:36:11] vamos a hacer es venirnos acá a donde dice Out 2. Lo pinchamos. Acá nosotros
[01:36:14] dice Out 2. Lo pinchamos. Acá nosotros vamos a tener el client ID, así que lo
[01:36:15] vamos a tener el client ID, así que lo vamos a copiar y aquí donde aparece
[01:36:17] vamos a copiar y aquí donde aparece client ID vamos a pegar nuestro client
[01:36:19] client ID vamos a pegar nuestro client ID. Después donde nos dice client
[01:36:21] ID. Después donde nos dice client secret, si es que nosotros no lo hemos
[01:36:23] secret, si es que nosotros no lo hemos creado, vamos a pinchar acá donde dice
[01:36:25] creado, vamos a pinchar acá donde dice reset secret. Y esto lo que va a hacer
[01:36:27] reset secret. Y esto lo que va a hacer es generarlo si es que nosotros recién
[01:36:29] es generarlo si es que nosotros recién habíamos iniciado sesión o recién
[01:36:31] habíamos iniciado sesión o recién habíamos creado el pod porque no nos ha
[01:36:33] habíamos creado el pod porque no nos ha creado todavía este kit. Aquí vamos a
[01:36:34] creado todavía este kit. Aquí vamos a iniciar sesión. Y ahora me aparece aquí
[01:36:37] iniciar sesión. Y ahora me aparece aquí mi client secret, así que podemos venir
[01:36:39] mi client secret, así que podemos venir acá para copiarlo y nos vamos a devolver
[01:36:41] acá para copiarlo y nos vamos a devolver a N8N y vamos a pegar acá el client
[01:36:44] a N8N y vamos a pegar acá el client secret. Luego, si nosotros seguimos
[01:36:45] secret. Luego, si nosotros seguimos bajando, nos va a aparecer un bot token.
[01:36:47] bajando, nos va a aparecer un bot token. Este nosotros también lo necesitamos.
[01:36:49] Este nosotros también lo necesitamos. Así que nos vamos a devolver aquí a
[01:36:50] Así que nos vamos a devolver aquí a Discord y aquí donde dice O out 2 vamos
[01:36:53] Discord y aquí donde dice O out 2 vamos a seleccionar bot para que tenga
[01:36:55] a seleccionar bot para que tenga permisos para poder comportarse como
[01:36:57] permisos para poder comportarse como bot. Y luego vamos a bajar y le vamos a
[01:36:59] bot. Y luego vamos a bajar y le vamos a indicar que tiene permisos de texto para
[01:37:01] indicar que tiene permisos de texto para poder enviar mensajes. Pero antes de
[01:37:03] poder enviar mensajes. Pero antes de continuar te dije que nosotros teníamos
[01:37:04] continuar te dije que nosotros teníamos que utilizar la URL de N8N, esta que
[01:37:08] que utilizar la URL de N8N, esta que aparece acá arriba, que la íbamos a
[01:37:09] aparece acá arriba, que la íbamos a necesitar dentro de Discord y esta es la
[01:37:12] necesitar dentro de Discord y esta es la que aparece acá. Vamos a agregar en
[01:37:14] que aparece acá. Vamos a agregar en redirects, justamente en la misma
[01:37:15] redirects, justamente en la misma sección de Out, vamos a agregar un
[01:37:17] sección de Out, vamos a agregar un addedirect y vamos a pegar esta URL.
[01:37:20] addedirect y vamos a pegar esta URL. Ahora nos está diciendo que tenemos
[01:37:21] Ahora nos está diciendo que tenemos cambios que no hemos guardado, así que
[01:37:23] cambios que no hemos guardado, así que vamos a pinchar acá en save changes. Y
[01:37:25] vamos a pinchar acá en save changes. Y ahora sí, vamos a sacar el ID del vot. Y
[01:37:27] ahora sí, vamos a sacar el ID del vot. Y aquí donde dice vot, vamos a bajar un
[01:37:30] aquí donde dice vot, vamos a bajar un poco hasta donde nos diga token. Aquí
[01:37:32] poco hasta donde nos diga token. Aquí vamos a pinchar en reset token. Le vamos
[01:37:34] vamos a pinchar en reset token. Le vamos a decir que sí, un nuevo token ha sido
[01:37:36] a decir que sí, un nuevo token ha sido generado, así que vamos a bajar aquí, lo
[01:37:38] generado, así que vamos a bajar aquí, lo vamos a copiar y en N8N vamos a bajar
[01:37:40] vamos a copiar y en N8N vamos a bajar nuevamente hasta bot token. Y ahora
[01:37:43] nuevamente hasta bot token. Y ahora podemos guardar. Ahora podemos pinchar
[01:37:45] podemos guardar. Ahora podemos pinchar acá en connect my account. Aquí nos dice
[01:37:47] acá en connect my account. Aquí nos dice que bot N8N quiere conectarse con
[01:37:49] que bot N8N quiere conectarse con nuestra cuenta de Discord. Vamos a
[01:37:51] nuestra cuenta de Discord. Vamos a bajar, vamos a seleccionar el servidor y
[01:37:53] bajar, vamos a seleccionar el servidor y yo voy a seleccionar acá Nicolás Test
[01:37:55] yo voy a seleccionar acá Nicolás Test Server. Vamos a pinchar en continue.
[01:37:57] Server. Vamos a pinchar en continue. Dejamos todos los permisos y luego
[01:37:59] Dejamos todos los permisos y luego authorize. Le decimos que somos un
[01:38:00] authorize. Le decimos que somos un humano y la conexión se ha realizado con
[01:38:02] humano y la conexión se ha realizado con éxito. Ahora podemos cerrar acá y dentro
[01:38:05] éxito. Ahora podemos cerrar acá y dentro de nuestro listado acá de servidores
[01:38:06] de nuestro listado acá de servidores podemos venir a pinchar acá y nos va a
[01:38:08] podemos venir a pinchar acá y nos va a indicar que no tiene cómo acceder a el
[01:38:11] indicar que no tiene cómo acceder a el listado de los servidores. Así que vamos
[01:38:12] listado de los servidores. Así que vamos a cambiar esto de from list. Lo vamos a
[01:38:14] a cambiar esto de from list. Lo vamos a cambiar por ID. Ahora, para que nosotros
[01:38:16] cambiar por ID. Ahora, para que nosotros podamos obtener el ID del servidor, nos
[01:38:18] podamos obtener el ID del servidor, nos vamos a devolver a la misma aplicación.
[01:38:20] vamos a devolver a la misma aplicación. Luego, aquí mismo, vamos a venir acá
[01:38:22] Luego, aquí mismo, vamos a venir acá donde dice Nicolás Test Server. Voy a
[01:38:24] donde dice Nicolás Test Server. Voy a darle clic derecho y voy a pinchar copy
[01:38:26] darle clic derecho y voy a pinchar copy server ID. Si a ti no te aparece eso,
[01:38:28] server ID. Si a ti no te aparece eso, puedes venir acá a user settings, bajas
[01:38:30] puedes venir acá a user settings, bajas hasta Advanced y habilitas developer
[01:38:33] hasta Advanced y habilitas developer mode. Si lo tienes habilitado, vas a
[01:38:35] mode. Si lo tienes habilitado, vas a poder copiar el ID del servidor. Aquí en
[01:38:37] poder copiar el ID del servidor. Aquí en el chat general vemos que el bot N8N ya
[01:38:39] el chat general vemos que el bot N8N ya se ha unido y ahora podemos pegar el ID
[01:38:41] se ha unido y ahora podemos pegar el ID del servidor acá. Ahora tenemos que
[01:38:43] del servidor acá. Ahora tenemos que indicarle a qué canal nosotros queremos
[01:38:45] indicarle a qué canal nosotros queremos enviar el mensaje. Así que acá desde la
[01:38:47] enviar el mensaje. Así que acá desde la lista podemos pinchar acá y aquí aparece
[01:38:49] lista podemos pinchar acá y aquí aparece nuestro chat general. Vamos a pinchar
[01:38:51] nuestro chat general. Vamos a pinchar acá y vamos a decir hola y vamos a
[01:38:54] acá y vamos a decir hola y vamos a arrastrar nombre. Lo vamos a poner acá.
[01:38:56] arrastrar nombre. Lo vamos a poner acá. Perfecto. Sin propiedades. Y vamos a
[01:38:57] Perfecto. Sin propiedades. Y vamos a ejecutar este paso. Y aquí vemos que
[01:38:59] ejecutar este paso. Y aquí vemos que esto ha tenido éxito. Ahora vamos a
[01:39:01] esto ha tenido éxito. Ahora vamos a revisar dentro de Discord. Y mira, aquí
[01:39:04] revisar dentro de Discord. Y mira, aquí me aparece hola Nicolás. Sin embargo, yo
[01:39:06] me aparece hola Nicolás. Sin embargo, yo no siempre voy a querer hacer esto. Van
[01:39:07] no siempre voy a querer hacer esto. Van a existir momentos donde yo voy a querer
[01:39:09] a existir momentos donde yo voy a querer enviar los mensajes, pero a un canal
[01:39:11] enviar los mensajes, pero a un canal privado. Vamos a ver cómo se hace eso.
[01:39:13] privado. Vamos a ver cómo se hace eso. Nos venimos acá, clic derecho y vamos a
[01:39:15] Nos venimos acá, clic derecho y vamos a crear un canal. Vamos a decir que este
[01:39:16] crear un canal. Vamos a decir que este es un canal privado y este se va a
[01:39:18] es un canal privado y este se va a llamar Hola Mundo y pinchamos en
[01:39:20] llamar Hola Mundo y pinchamos en siguiente. Luego acá esto es muy
[01:39:23] siguiente. Luego acá esto es muy importante porque si es que el canal que
[01:39:25] importante porque si es que el canal que es privado nosotros no agregamos al bot
[01:39:28] es privado nosotros no agregamos al bot como un miembro, este no va a poder
[01:39:31] como un miembro, este no va a poder enviar mensajes. Así que acá nosotros
[01:39:32] enviar mensajes. Así que acá nosotros después de haber seleccionado al bot
[01:39:34] después de haber seleccionado al bot como miembro, ahora podemos crear el
[01:39:35] como miembro, ahora podemos crear el canal. Si no, nos va a decir que no
[01:39:37] canal. Si no, nos va a decir que no encuentra este chat. Ahora, ya que lo
[01:39:40] encuentra este chat. Ahora, ya que lo hemos agregado y podemos ver que este
[01:39:42] hemos agregado y podemos ver que este aparece acá, podemos venir aquí al
[01:39:44] aparece acá, podemos venir aquí al nombre de nuestro grupo Hola Mundo y
[01:39:47] nombre de nuestro grupo Hola Mundo y vamos a darle clic derecho. Vamos a
[01:39:48] vamos a darle clic derecho. Vamos a bajar hasta el final, hasta donde
[01:39:50] bajar hasta el final, hasta donde aparece Copy Channel ID. Y ahora de
[01:39:52] aparece Copy Channel ID. Y ahora de regreso acá nosotros podemos pinchar
[01:39:55] regreso acá nosotros podemos pinchar dentro del listado. Y ahora podemos
[01:39:56] dentro del listado. Y ahora podemos seleccionar Hola Mundo. Y ahora vamos a
[01:39:58] seleccionar Hola Mundo. Y ahora vamos a ejecutar este paso. Ejecutamos y vemos
[01:40:00] ejecutar este paso. Ejecutamos y vemos que ahora se está ejecutando con éxito.
[01:40:01] que ahora se está ejecutando con éxito. Y si revisamos dentro de nuestra
[01:40:03] Y si revisamos dentro de nuestra aplicación de Discord, podemos ver que
[01:40:05] aplicación de Discord, podemos ver que ahora sí aparece el mensaje con éxito de
[01:40:07] ahora sí aparece el mensaje con éxito de nuestro bot N8N. Y viste que fue fácil,
[01:40:10] nuestro bot N8N. Y viste que fue fácil, este tiene un par de pasos más que Slack
[01:40:12] este tiene un par de pasos más que Slack y las otras integraciones que nosotros
[01:40:14] y las otras integraciones que nosotros hemos visto, pero después de hacerlo un
[01:40:16] hemos visto, pero después de hacerlo un par de veces te va a salir. La verdad es
[01:40:17] par de veces te va a salir. La verdad es que es bastante fácil poder realizar
[01:40:19] que es bastante fácil poder realizar esta implementación.
[01:40:23] Algunos equipos utilizan Notion para
[01:40:25] Algunos equipos utilizan Notion para poder llevar el registro de las tareas o
[01:40:27] poder llevar el registro de las tareas o también el seguimiento de los leads. Así
[01:40:29] también el seguimiento de los leads. Así que en este video vamos a ver cómo nos
[01:40:30] que en este video vamos a ver cómo nos podemos integrar con Notion. Paso número
[01:40:33] podemos integrar con Notion. Paso número uno, vamos a venir aquí a agregar un
[01:40:35] uno, vamos a venir aquí a agregar un nuevo nodo y vamos a buscar Notion.
[01:40:37] nuevo nodo y vamos a buscar Notion. Después de esto vamos a seleccionar acá
[01:40:39] Después de esto vamos a seleccionar acá y aquí nosotros deberíamos ver qué
[01:40:41] y aquí nosotros deberíamos ver qué acción queremos realizar. Tenemos
[01:40:43] acción queremos realizar. Tenemos varias, tenemos append block, tenemos
[01:40:45] varias, tenemos append block, tenemos get database, get many database, buscar
[01:40:47] get database, get many database, buscar bases de datos, pero yo voy a
[01:40:49] bases de datos, pero yo voy a seleccionar create a database page. Esto
[01:40:52] seleccionar create a database page. Esto me va a permitir a mí poder agregar
[01:40:54] me va a permitir a mí poder agregar registros a una tabla que yo ya tenga
[01:40:56] registros a una tabla que yo ya tenga creada dentro de Notion. Por supuesto,
[01:40:58] creada dentro de Notion. Por supuesto, para que esto funcione, lo primero que
[01:40:59] para que esto funcione, lo primero que tengo que hacer es crear nuestra
[01:41:00] tengo que hacer es crear nuestra credencial. Así que vamos a pinchar acá
[01:41:02] credencial. Así que vamos a pinchar acá en create new credential. Y esta forma
[01:41:04] en create new credential. Y esta forma de poder integrarlo, la verdad es que es
[01:41:06] de poder integrarlo, la verdad es que es superfácil. Vamos a pinchar aquí en Open
[01:41:08] superfácil. Vamos a pinchar aquí en Open Docs porque aquí se encuentra un link
[01:41:10] Docs porque aquí se encuentra un link muy directo para poder crear nuestras
[01:41:13] muy directo para poder crear nuestras integraciones con Notion. Y vamos a
[01:41:15] integraciones con Notion. Y vamos a bajar hasta esta parte donde nos dice
[01:41:17] bajar hasta esta parte donde nos dice using API integration token. En
[01:41:19] using API integration token. En específico, lo que nos interesa es esta
[01:41:21] específico, lo que nos interesa es esta parte que aparece acá. Para poder
[01:41:23] parte que aparece acá. Para poder generar una integración o un secreto de
[01:41:26] generar una integración o un secreto de integración tenemos que crear una notion
[01:41:28] integración tenemos que crear una notion integration. Aquí es donde nosotros
[01:41:29] integration. Aquí es donde nosotros tenemos que pinchar. Así que pinchamos
[01:41:31] tenemos que pinchar. Así que pinchamos acá, nos va a abrir una nueva pestaña y
[01:41:33] acá, nos va a abrir una nueva pestaña y aquí vamos a venir a Integration
[01:41:35] aquí vamos a venir a Integration Dashboard. Pinchamos aquí y esta es la
[01:41:38] Dashboard. Pinchamos aquí y esta es la ventana que nosotros queremos ver. Pero
[01:41:40] ventana que nosotros queremos ver. Pero espera, antes de que tú te lances aquí a
[01:41:42] espera, antes de que tú te lances aquí a pinchar en la integración. Nosotros
[01:41:44] pinchar en la integración. Nosotros tenemos integraciones que podemos
[01:41:45] tenemos integraciones que podemos generar de manera pública para que la
[01:41:47] generar de manera pública para que la vean más personas y más equipos, pero en
[01:41:49] vean más personas y más equipos, pero en este caso nosotros queremos una
[01:41:51] este caso nosotros queremos una integración que sea interna o privada,
[01:41:53] integración que sea interna o privada, que solamente sea para nosotros y para
[01:41:54] que solamente sea para nosotros y para nuestro equipo. Para poder construir ese
[01:41:56] nuestro equipo. Para poder construir ese tipo de integraciones privadas vamos a
[01:41:58] tipo de integraciones privadas vamos a venir acá a donde dice internal
[01:42:00] venir acá a donde dice internal integrations. Aquí es donde pinchamos.
[01:42:02] integrations. Aquí es donde pinchamos. Ahora podemos pinchar acá en create a
[01:42:04] Ahora podemos pinchar acá en create a new integration. Acá le vamos a dar un
[01:42:06] new integration. Acá le vamos a dar un nombre. Este nombre es importante porque
[01:42:08] nombre. Este nombre es importante porque después tenemos que buscarlo por el
[01:42:09] después tenemos que buscarlo por el nombre. Así que yo le voy a colocar N8N
[01:42:12] nombre. Así que yo le voy a colocar N8N Notion. Y acá tenemos que asociarle un
[01:42:15] Notion. Y acá tenemos que asociarle un espacio de trabajo. Yo voy a pinchar acá
[01:42:16] espacio de trabajo. Yo voy a pinchar acá y voy a seleccionar Nicolas Notion.
[01:42:19] y voy a seleccionar Nicolas Notion. Ahora podemos pinchar acá en create y me
[01:42:21] Ahora podemos pinchar acá en create y me ha arrojado un error. El nombre no puede
[01:42:23] ha arrojado un error. El nombre no puede contener la palabra notion. Así que voy
[01:42:25] contener la palabra notion. Así que voy a colocarle N8N Nicolás. Ahora pinchamos
[01:42:28] a colocarle N8N Nicolás. Ahora pinchamos nuevamente en create. Ahora vamos a
[01:42:30] nuevamente en create. Ahora vamos a pinchar acá en configurar nuestra
[01:42:32] pinchar acá en configurar nuestra integración. Y aquí nos está diciendo
[01:42:33] integración. Y aquí nos está diciendo que nuestra integración todavía no tiene
[01:42:35] que nuestra integración todavía no tiene acceso a ninguna página. Eso nosotros lo
[01:42:37] acceso a ninguna página. Eso nosotros lo vamos a hacer después directamente en
[01:42:39] vamos a hacer después directamente en Notion. Por ahora nosotros vamos a
[01:42:40] Notion. Por ahora nosotros vamos a bajar. Acá nosotros podemos ver las
[01:42:42] bajar. Acá nosotros podemos ver las capacidades que va a tener nuestra
[01:42:44] capacidades que va a tener nuestra integración. Si queremos agregarle
[01:42:45] integración. Si queremos agregarle permiso para poder leer o insertar
[01:42:47] permiso para poder leer o insertar comentarios, tenemos que hacerlo acá. Yo
[01:42:49] comentarios, tenemos que hacerlo acá. Yo lo voy a dejar así y voy a subir a esta
[01:42:51] lo voy a dejar así y voy a subir a esta parte donde dice internal integration
[01:42:53] parte donde dice internal integration secret. Aquí, como puedes ver, el
[01:42:54] secret. Aquí, como puedes ver, el secreto se encuentra tapado, así que
[01:42:56] secreto se encuentra tapado, así que para poder verlo tenemos que pinchar acá
[01:42:58] para poder verlo tenemos que pinchar acá en show. Ahora podemos seleccionarlo y
[01:43:00] en show. Ahora podemos seleccionarlo y copiarlo. Y de regreso acá en N8N, aquí
[01:43:03] copiarlo. Y de regreso acá en N8N, aquí donde dice internal integration secret
[01:43:05] donde dice internal integration secret es donde nosotros tenemos que pegarlo.
[01:43:06] es donde nosotros tenemos que pegarlo. Ahora podemos guardar, nos va a entregar
[01:43:08] Ahora podemos guardar, nos va a entregar un mensaje que la conexión ha sido
[01:43:10] un mensaje que la conexión ha sido exitosa y ya podemos cerrar. Pero si
[01:43:12] exitosa y ya podemos cerrar. Pero si nosotros vamos a ver el listados de base
[01:43:14] nosotros vamos a ver el listados de base de datos, nos va a mostrar que no
[01:43:15] de datos, nos va a mostrar que no aparece ningún resultado. Para eso
[01:43:17] aparece ningún resultado. Para eso tenemos que hacer dos cosas. Tenemos que
[01:43:19] tenemos que hacer dos cosas. Tenemos que ir a Notion y vamos a crear una página
[01:43:21] ir a Notion y vamos a crear una página la cual va a contener una base de datos.
[01:43:23] la cual va a contener una base de datos. Y luego dentro de esa misma página vamos
[01:43:25] Y luego dentro de esa misma página vamos a agregar nuestra integración para que
[01:43:27] a agregar nuestra integración para que este pueda acceder a la base de datos.
[01:43:29] este pueda acceder a la base de datos. Aquí yo ya me encuentro dentro de
[01:43:31] Aquí yo ya me encuentro dentro de Notion. Yo estoy utilizando la versión
[01:43:32] Notion. Yo estoy utilizando la versión de escritorio, pero también se puede
[01:43:33] de escritorio, pero también se puede hacer con la versión web. Y aquí donde
[01:43:35] hacer con la versión web. Y aquí donde dice private voy a agregar una nueva
[01:43:37] dice private voy a agregar una nueva página y voy a decir que esta va a ser
[01:43:39] página y voy a decir que esta va a ser una base de datos vacía. Aquí le vamos a
[01:43:41] una base de datos vacía. Aquí le vamos a dar un nombre a esta base de datos. Yo
[01:43:43] dar un nombre a esta base de datos. Yo voy a decir que se va a llamar Hola,
[01:43:45] voy a decir que se va a llamar Hola, Mundo. Esta propiedad yo le voy a
[01:43:46] Mundo. Esta propiedad yo le voy a cambiar su nombre a nombre y voy a
[01:43:49] cambiar su nombre a nombre y voy a agregar una nueva propiedad de texto, la
[01:43:51] agregar una nueva propiedad de texto, la cual su nombre va a ser apellido. Y
[01:43:53] cual su nombre va a ser apellido. Y ahora, antes de irnos a N8N, vamos a
[01:43:56] ahora, antes de irnos a N8N, vamos a venir acá arriba a la derecha y vamos a
[01:43:58] venir acá arriba a la derecha y vamos a pinchar en estos tres puntitos. Una vez
[01:44:00] pinchar en estos tres puntitos. Una vez acá, vamos a bajar hasta el final, hasta
[01:44:03] acá, vamos a bajar hasta el final, hasta acá que nos aparece connections. Y acá
[01:44:05] acá que nos aparece connections. Y acá nosotros vamos a buscar por el nombre de
[01:44:07] nosotros vamos a buscar por el nombre de la conexión que nosotros creamos. Aquí
[01:44:09] la conexión que nosotros creamos. Aquí es N8N y aquí me aparece N8N- Nicolás. y
[01:44:12] es N8N y aquí me aparece N8N- Nicolás. y también me dice que fui yo el que la
[01:44:14] también me dice que fui yo el que la creó. Vamos a pinchar acá. Y acá
[01:44:15] creó. Vamos a pinchar acá. Y acá nosotros tenemos que confirmar los
[01:44:17] nosotros tenemos que confirmar los permisos que va a tener. Y ahora nos
[01:44:19] permisos que va a tener. Y ahora nos podemos devolver a N8N. Entonces, de
[01:44:21] podemos devolver a N8N. Entonces, de regreso acá vamos a pinchar en select a
[01:44:23] regreso acá vamos a pinchar en select a database. Si no aparece podemos cerrar y
[01:44:26] database. Si no aparece podemos cerrar y podemos volver a pinchar dos veces acá.
[01:44:28] podemos volver a pinchar dos veces acá. Y ahora apareció mi base de datos de
[01:44:29] Y ahora apareció mi base de datos de Hola Mundo. Así que seleccionamos acá. Y
[01:44:31] Hola Mundo. Así que seleccionamos acá. Y recuerda que nosotros vamos a crear una
[01:44:33] recuerda que nosotros vamos a crear una página dentro de la base de datos. Así
[01:44:35] página dentro de la base de datos. Así que bajamos. Acá donde aparece title
[01:44:37] que bajamos. Acá donde aparece title podemos colocar título y las propiedades
[01:44:39] podemos colocar título y las propiedades que nosotros queremos agregar.
[01:44:41] que nosotros queremos agregar. Selecciono acá, pincho acá y voy a
[01:44:42] Selecciono acá, pincho acá y voy a seleccionar el nombre, chanchito, vamos
[01:44:44] seleccionar el nombre, chanchito, vamos a agregar otra propiedad, hacer
[01:44:46] a agregar otra propiedad, hacer apellido. Y aquí nosotros le colocamos
[01:44:48] apellido. Y aquí nosotros le colocamos el texto de feliz. Ahora podemos
[01:44:50] el texto de feliz. Ahora podemos ejecutar este paso. Vemos que esta
[01:44:52] ejecutar este paso. Vemos que esta operación ha tenido éxito. Y si nos
[01:44:53] operación ha tenido éxito. Y si nos devolvemos a Notion, vemos que aquí
[01:44:55] devolvemos a Notion, vemos que aquí aparece chanchito feliz. Y por supuesto
[01:44:56] aparece chanchito feliz. Y por supuesto que esto también funciona con las
[01:44:58] que esto también funciona con las variables dinámicas que vimos antes. Así
[01:44:59] variables dinámicas que vimos antes. Así que yo podría llegar acá, tomo el nombre
[01:45:02] que yo podría llegar acá, tomo el nombre y lo coloco acá. Y puedo hacer lo mismo
[01:45:04] y lo coloco acá. Y puedo hacer lo mismo con el apellido. Tomo apellido y lo
[01:45:06] con el apellido. Tomo apellido y lo coloco justamente después de Feliz.
[01:45:08] coloco justamente después de Feliz. Vuelvo a ejecutar el paso, me aparece el
[01:45:10] Vuelvo a ejecutar el paso, me aparece el mensaje de éxito. Y ahora vemos cómo
[01:45:11] mensaje de éxito. Y ahora vemos cómo aparece chanchito Nicolás. Feliz
[01:45:13] aparece chanchito Nicolás. Feliz chanchito. Y así de fácil es integrar
[01:45:15] chanchito. Y así de fácil es integrar Notion.
[01:45:19] Y esta sección no estaría completa si no
[01:45:21] Y esta sección no estaría completa si no nos integráramos con algún LLM, como por
[01:45:24] nos integráramos con algún LLM, como por ejemplo el de Chat GPT. Vamos a ver cómo
[01:45:26] ejemplo el de Chat GPT. Vamos a ver cómo lo podemos hacer ahora. Vamos a venirnos
[01:45:28] lo podemos hacer ahora. Vamos a venirnos acá nuevamente a nuestro panel y vamos a
[01:45:30] acá nuevamente a nuestro panel y vamos a pinchar acá en el símbolo de más. Acá
[01:45:33] pinchar acá en el símbolo de más. Acá vamos a buscar chat GPT. Aquí nos
[01:45:35] vamos a buscar chat GPT. Aquí nos aparece el nodo de Open AI, así que
[01:45:37] aparece el nodo de Open AI, así que vamos a pinchar en este. Y tenemos
[01:45:39] vamos a pinchar en este. Y tenemos varias acciones acá. Nosotros podemos
[01:45:40] varias acciones acá. Nosotros podemos analizar imágenes, generar imágenes,
[01:45:42] analizar imágenes, generar imágenes, enviarle también mensajes al modelo,
[01:45:45] enviarle también mensajes al modelo, generar audio. Podemos transcribir
[01:45:48] generar audio. Podemos transcribir alguna grabación que nosotros hayamos
[01:45:49] alguna grabación que nosotros hayamos hecho, pero yo lo voy a dejar sencillo
[01:45:51] hecho, pero yo lo voy a dejar sencillo esta vez y lo voy a dejar como enviarle
[01:45:53] esta vez y lo voy a dejar como enviarle un mensaje al modelo. Aquí yo ya tengo
[01:45:55] un mensaje al modelo. Aquí yo ya tengo una cuenta con Open AI, pero me voy a
[01:45:57] una cuenta con Open AI, pero me voy a crear una nueva. Y aquí nosotros tenemos
[01:45:58] crear una nueva. Y aquí nosotros tenemos que colocar nuestra AP key. Para
[01:46:00] que colocar nuestra AP key. Para nosotros poder crearnos una API Key,
[01:46:02] nosotros poder crearnos una API Key, tenemos que irnos a la web de
[01:46:03] tenemos que irnos a la web de platform.com.
[01:46:05] platform.com. ¿Qué es esto que aparece acá? Ahora
[01:46:07] ¿Qué es esto que aparece acá? Ahora nosotros podemos venirnos acá a la
[01:46:09] nosotros podemos venirnos acá a la izquierda. Vamos a bajar hasta API Keys.
[01:46:12] izquierda. Vamos a bajar hasta API Keys. Pinchamos acá y ahora nosotros podemos
[01:46:14] Pinchamos acá y ahora nosotros podemos venirnos acá a create new secret key.
[01:46:17] venirnos acá a create new secret key. Cuando nosotros pinchemos acá, le vamos
[01:46:18] Cuando nosotros pinchemos acá, le vamos a tener que agregar un nombre. Yo voy a
[01:46:20] a tener que agregar un nombre. Yo voy a decir que se va a llamar My Test Key
[01:46:22] decir que se va a llamar My Test Key para hacerlo fácil. Este va a ser un
[01:46:24] para hacerlo fácil. Este va a ser un proyecto por defecto y va a tener todos
[01:46:26] proyecto por defecto y va a tener todos los permisos. Si nosotros queremos
[01:46:27] los permisos. Si nosotros queremos restringirlo, podemos hacerlo acá
[01:46:28] restringirlo, podemos hacerlo acá también. Y luego pinchamos acá en create
[01:46:30] también. Y luego pinchamos acá en create secret key. Ahora esto lo podemos copiar
[01:46:32] secret key. Ahora esto lo podemos copiar y nos podemos devolver a N8N. Una vez
[01:46:35] y nos podemos devolver a N8N. Una vez acá podemos pegar nuestra By, podemos
[01:46:37] acá podemos pegar nuestra By, podemos pasarle el organization ID si es que así
[01:46:39] pasarle el organization ID si es que así lo deseamos. Yo lo voy a dejar vacío. Y
[01:46:41] lo deseamos. Yo lo voy a dejar vacío. Y ahora podemos pinchar en save. Aprobado
[01:46:43] ahora podemos pinchar en save. Aprobado la conexión, ya ha sido exitosa. Ahora
[01:46:44] la conexión, ya ha sido exitosa. Ahora podemos cerrar acá y acá podemos indicar
[01:46:47] podemos cerrar acá y acá podemos indicar si nosotros queremos enviar un texto,
[01:46:48] si nosotros queremos enviar un texto, imagen, audio, archivo, una
[01:46:50] imagen, audio, archivo, una conversación, video, etcétera. Yo lo voy
[01:46:52] conversación, video, etcétera. Yo lo voy a dejar en texto. Vamos a dejarlo como
[01:46:53] a dejar en texto. Vamos a dejarlo como message a model. Vamos a seleccionar acá
[01:46:56] message a model. Vamos a seleccionar acá un modelo del listado. Y aquí tenemos
[01:46:58] un modelo del listado. Y aquí tenemos desde GPT 3.5 hasta, si nos vamos todo
[01:47:01] desde GPT 3.5 hasta, si nos vamos todo abajo, deberíamos llegar a GPT 5.4.
[01:47:04] abajo, deberíamos llegar a GPT 5.4. Tenemos también GPT audio, image o1 y
[01:47:06] Tenemos también GPT audio, image o1 y así sucesivamente, pero yo lo voy a
[01:47:08] así sucesivamente, pero yo lo voy a dejar aquí en GPT 5.4. Tenemos el texto,
[01:47:12] dejar aquí en GPT 5.4. Tenemos el texto, el rol con el cual nosotros le queremos
[01:47:14] el rol con el cual nosotros le queremos pasar este mensaje puede ser como
[01:47:16] pasar este mensaje puede ser como usuario, asistente o también sistema. Le
[01:47:18] usuario, asistente o también sistema. Le podemos pedir que adopte un tono en
[01:47:20] podemos pedir que adopte un tono en particular. Yo lo voy a dejar como
[01:47:21] particular. Yo lo voy a dejar como usuario y voy a decir que el prompt va a
[01:47:23] usuario y voy a decir que el prompt va a ser hola. Podemos simplificar el output,
[01:47:26] ser hola. Podemos simplificar el output, agregar también más propiedades, pero
[01:47:28] agregar también más propiedades, pero con esto yo creo que ya está bien. Ahora
[01:47:29] con esto yo creo que ya está bien. Ahora podemos pinchar acá en execute step. Ah,
[01:47:31] podemos pinchar acá en execute step. Ah, pero antes de hacerlo, nosotros también
[01:47:33] pero antes de hacerlo, nosotros también podemos utilizar las variables dinámicas
[01:47:35] podemos utilizar las variables dinámicas arrastrando esto desde acá hasta el
[01:47:37] arrastrando esto desde acá hasta el mismo prompt. Entonces, yo voy a dejar
[01:47:38] mismo prompt. Entonces, yo voy a dejar mi nombre, voy a dejar, "Hola, mi nombre
[01:47:41] mi nombre, voy a dejar, "Hola, mi nombre es y mi nombre, ¿cuál es el tuyo?" Ahora
[01:47:43] es y mi nombre, ¿cuál es el tuyo?" Ahora podemos pinchar acá en execute step y
[01:47:46] podemos pinchar acá en execute step y acá podemos ver el texto de respuesta.
[01:47:48] acá podemos ver el texto de respuesta. Hola, Nicolas, mucho gusto. Yo soy Chat
[01:47:50] Hola, Nicolas, mucho gusto. Yo soy Chat GPT. ¿Cómo estás? Este texto, por
[01:47:52] GPT. ¿Cómo estás? Este texto, por supuesto que nosotros después vamos a
[01:47:53] supuesto que nosotros después vamos a poder obtenerlo y colocarlo como alguna
[01:47:56] poder obtenerlo y colocarlo como alguna respuesta, por ejemplo, si la queremos
[01:47:57] respuesta, por ejemplo, si la queremos enviar por correo electrónico o si la
[01:47:59] enviar por correo electrónico o si la queremos enviar por Slack. Pero yo creo
[01:48:00] queremos enviar por Slack. Pero yo creo que ahora ya te estás dando cuenta que
[01:48:02] que ahora ya te estás dando cuenta que con todos estos controles de flujo que
[01:48:04] con todos estos controles de flujo que hemos aprendido, manipulación de datos y
[01:48:06] hemos aprendido, manipulación de datos y las distintas integraciones que nos
[01:48:08] las distintas integraciones que nos ofrece, ¿qué podemos empezar a hacer con
[01:48:10] ofrece, ¿qué podemos empezar a hacer con N8N?
[01:48:14] [música]