En este artículo, configuraremos un script en Latenode para enviar un correo electrónico a un cliente de una agencia de viajes que acaba de reservar un tour.
El esquema de este flujo es sencillo: conocemos el género y la edad del cliente, así como la ciudad desde la que viaja y la ciudad a la que planea ir. A partir de estos datos, prepararemos un texto de correo electrónico para indicarle adónde ir y qué ver cuando llegue a la ciudad. A continuación, se muestra un ejemplo del texto que preparará ChatGPT:
¡Bienvenido a la encantadora ciudad de Limassol, Chipre! Como turista de invierno, tendrá muchas cosas que ver y hacer durante su estancia. En cuanto a los lugares que visitar, las tres atracciones imprescindibles son: el Castillo de Limassol, un castillo medieval situado en el corazón de la ciudad. El castillo es un lugar excelente para conocer la rica historia de la ciudad y también ofrece magníficas vistas de la ciudad y el mar. El puerto deportivo de Limassol, un hermoso puerto deportivo con una variedad de tiendas, restaurantes y bares. Es un lugar perfecto para pasear, comer o tomar una bebida mientras admira los barcos. El casco antiguo de Limassol, un encantador barrio repleto de arquitectura tradicional, pintorescas tiendas y acogedores cafés. Es un lugar perfecto para pasear y descubrir la cultura local. En cuanto a las actividades, las tres principales recomendaciones son: visitar el Museo Arqueológico de Limassol, que alberga una amplia colección de objetos que muestran la rica historia y cultura de la isla. Realizar una ruta del vino por la región de Limassol, donde podrá degustar los vinos locales y conocer la tradición vinícola de la isla. Visitar el lago salado de Limassol, un lugar ideal para observar aves y disfrutar también de hermosas vistas de la ciudad. Limassol es una ciudad que tiene mucho que ofrecer, y estas son solo algunas de las muchas cosas que podrá ver y hacer durante su visita. Disfrute de su estancia en Limassol y no dude en pedir recomendaciones a los habitantes locales, ya que estarán encantados de ayudarle a descubrir las joyas ocultas de su ciudad.
Preparación
Primero, revisemos la lista de lo que necesitamos para crear un flujo: una cuenta de ChatGPT y su clave personal, además de una cuenta de Mailgun y su clave API privada;
La clave personal de ChatGPT se puede consultar o crear aquí, en la configuración del perfil:
![]()
La clave API de Mailgun también se encuentra en la configuración del perfil:
![]()
Creación de un flujo en Latenode
Lo primero que hacemos, como siempre, es crear un nodo: "+ Add Node" => "Http" => "Webhook";
Copiemos inmediatamente su dirección;
![]()
Guarde los cambios;
Preparemos también una solicitud para un cliente REST (Postman, Insomnia):
Solicitud para cliente REST:
curl --request POST
--url https://webhook.latenode.com/69/dev/8a3d287b-6580-45d0-8d69-c37b9a41e890
--header 'Content-Type: application/x-www-form-urlencoded'
--data 'personalTokenChatGPT=Your token'
--data 'apiKeyMailgun=Your token'
--data 'email=Your test email'
--data 'personAge=26'
--data 'personGender=male'
--data 'desiredSeason=winter'
--data 'cityDestination=Prague'
Cambie el enlace del Webhook por el suyo;
A continuación, sustituya en personalTokenChatGPT su clave de ChatGPT;
Después, introduzca en apiKeyMailgun su clave de Mailgun;
Cambie también el campo email por su correo electrónico de prueba; si tiene un plan gratuito de Mailgun, solo podrá enviar correos a la dirección indicada durante el registro;
El resto puede cambiarlo a su gusto;
![]()
Cree un nuevo nodo: "+ Add Node" => "Code" => "JavaScript";
Inserte el contenido:
const apiChatGPT = "https://api.openai.com/v1";
const apiMailgun="https://api.mailgun.net/v3";
const personalTokenChatGPT = `Bearer ${data["{{1.body.personalTokenChatGPT}}"]}`;
const apiKeyMailgun = data["{{1.body.apiKeyMailgun}}"];
const personGender = data["{{1.body.personGender}}"];
const personAge = data["{{1.body.personAge}}"];
const desiredSeason = data["{{1.body.desiredSeason}}"];
const cityDestination = data["{{1.body.cityDestination}}"];
const message = `Give me an article for a tourist about the top 3 places to see and top 3 activities to do in the city of destination. The tourist is ${personGender}, ${personAge} years old, traveling in ${desiredSeason}, destination city ${cityDestination}.`;
const resultRawJSON = JSON.stringify({
"model":"text-davinci-003",
"prompt":message,
"temperature":0,
"max_tokens":1400
});
return {
apiChatGPT,
apiMailgun,
personalTokenChatGPT,
apiKeyMailgun,
resultRawJSON
}
Guarde;
Conecte los nodos entre sí;
Inicie y ejecute el flujo para transferir datos entre los nodos;
Abra de nuevo la configuración del nodo "JavaScript";
Revise todas las construcciones como "data["{{1.body.personGender}}"]" y compruebe que el número del Webhook corresponda al nodo desde el que recibe los datos; de no ser así, sustitúyalo por el necesario (recuerde que 1 es el número del nodo escrito debajo del nombre del nodo; después, si se trata de una consulta, deberá seleccionar el campo del objeto responsable del tipo de datos enviados o recibidos: body para formularios o query para parámetros de consulta);
![]()
A continuación, cree un nodo "Http request" que realizará una solicitud para generar frases basadas en los parámetros de texto de la variable message del nodo JS;
Cree el nodo: "+ Add node" => "Http" => "HTTP request";
Guarde;
Conectemos los nodos entre sí;
Inicie y ejecute el flujo para transferir datos entre los nodos;
Configuremos el campo "Url": al principio sustituiremos la variable "apiChatGPT" del nodo "JavaScript" y, después, especificaremos /completions;
Obtenga más información sobre esta y otras llamadas de la API de ChatGPT al final de este artículo;
Cambie el método a "POST";
En "raw", sustituya la variable del primer nodo "JavaScript";
En Headers, añadiremos dos:
- Content-Type con el valor: application/json
- Authorization; en el valor, seleccione una variable del nodo "JavaScript" con el nombre: personalTokenChatGPT
![]()
Guardemos los cambios;
Añada un nodo "Webhook response" para devolver el texto generado por ChatGPT en la respuesta: "+ Add Node" => "Http" => "Webhook response";
Guarde;
Conecte los nodos entre sí;
Inicie y ejecute el flujo para transferir datos entre los nodos;
Añadamos la respuesta recibida del nodo anterior "Http request"; no olvide indicar el índice entre corchetes;
![]()
![]()
Guardemos los cambios;
Por último, añadamos un nodo más "Http request" para enviar las ofertas de marketing generadas y listas mediante Mailgun: "+ Add node" => "Http" => "HTTP request";
Guarde;
Conecte los nodos entre sí;
Ejecute y active el flujo para transferir datos entre los nodos;
A continuación, vaya al sitio web de Mailgun, a la sección: "Sending" => "Overview";
![]()
Copie el código CURL preparado:
![]()
Péguelo en "Http request" mediante "Create from example (CURL)":
![]()
Después, copie la clave y el dominio del sitio de Mailgun en algún lugar, por ejemplo, en un bloc de notas;
![]()
En la Url, introduzca primero la variable apiMailgun del primer nodo "JavaScript", después /su dominio en Mailgun/ y, al final, /message;
Cambie el método a "POST";
En el cuerpo, seleccione la pestaña "form-data";
En el cuerpo, configure todo como en las capturas de pantalla siguientes:
- from: Mailgun Sandbox <postmaster@su dominio en Mailgun>;
- To: su buzón de correo de prueba; seleccione la variable clientEmail del nodo "JavaScript" e introdúzcala dentro de <>;
- subject: ¿Hora de viajar?;
- text: variable con el texto recibido tras la generación desde el nodo "Webhook response";
![]()
En la sección "Authorization", debajo del campo "Password", inserte la variable apiKeyMailgun del primer nodo "JavaScript";
Guarde los cambios;
![]()
Iniciemos y ejecutemos el flujo completo;
Después, debería recibir un correo con el texto generado en la dirección de correo electrónico que especificó. Revise la carpeta de spam si no lo encuentra en la bandeja de entrada;
![]()
Gracias por su atención. Nos vemos en nuevos artículos; ¡habrá otro sobre ChatGPT! 😉
Enlaces:
Básicos:


