Neste artigo, vamos configurar um script na Latenode para enviar um e-mail a um cliente de agência de viagens que acabou de reservar um passeio.
O esquema desse fluxo é simples: sabemos o gênero e a idade do cliente, de qual cidade ele sai e para qual cidade pretende viajar. Com base nesses dados, vamos preparar o texto de um e-mail para informar aonde ir e o que ver quando ele chegar à cidade. Veja um exemplo do texto que o ChatGPT vai preparar:
Boas-vindas à encantadora cidade de Limassol, Chipre! Como turista de inverno, há muitas coisas para você ver e fazer durante sua estadia. Quando se trata de lugares para conhecer, as três atrações imperdíveis são: o Castelo de Limassol, um castelo medieval localizado no coração da cidade. O castelo é um ótimo lugar para conhecer a rica história da cidade e também oferece belas vistas da cidade e do mar. A Marina de Limassol, uma bela marina com uma variedade de lojas, restaurantes e bares. É um lugar perfeito para passear, fazer uma refeição ou tomar algo enquanto admira os barcos. O Centro Histórico de Limassol, um bairro charmoso repleto de arquitetura tradicional, lojas pitorescas e cafés aconchegantes. É um lugar perfeito para caminhar e sentir a cultura local. Quanto às atividades, as três principais recomendações são: visitar o Museu Arqueológico de Limassol, que abriga uma vasta coleção de artefatos que ajudam a revelar a rica história e cultura da ilha. Fazer um tour de vinhos pela região de Limassol, onde você pode provar vinhos locais e aprender sobre a tradição vinícola da ilha. Visitar o lago salgado de Limassol, um ótimo lugar para observação de aves que também oferece belas vistas da cidade. Limassol é uma cidade com muito a oferecer, e estas são apenas algumas das muitas coisas que você pode ver e fazer durante sua visita. Aproveite sua estadia em Limassol e não hesite em pedir recomendações aos moradores, pois eles ficarão mais do que felizes em ajudar você a descobrir os tesouros escondidos da cidade.
Preparação
Primeiro, vamos conferir a lista do que precisamos para criar uma cadeia: uma conta do ChatGPT e sua chave pessoal, além de uma conta do Mailgun e sua chave privada de API;
A chave pessoal do ChatGPT pode ser visualizada ou criada aqui nas configurações do perfil:
![]()
A chave de API do Mailgun também está nas configurações do perfil:
![]()
Criando uma cadeia na Latenode
A primeira coisa que fazemos, como sempre, é criar um nó: "+ Add Node" => "Http" => "Webhook";
Vamos copiar o endereço dele imediatamente;
![]()
Salve as alterações;
Vamos também preparar uma solicitação para um cliente REST (Postman, Insomnia):
REQ 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'
Altere o link do Webhook para o seu;
Em seguida, substitua em personalTokenChatGPT sua chave do ChatGPT;
Depois, insira em apiKeyMailgun sua chave do Mailgun;
Altere também o email para seu e-mail de teste, pois, se você tiver um plano gratuito do Mailgun, poderá enviar apenas para o e-mail informado no cadastro;
O restante você pode alterar como quiser;
![]()
Crie um novo nó: "+ Add Node" => "Code" => "JavaScript";
Insira o conteúdo nele:
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
}
Salve;
Conecte os nós;
Inicie e acione a cadeia para transferir dados entre os nós;
Vamos abrir novamente as configurações do nó "JavaScript";
Verifique todas as construções como "data["{{1.body.personGender}}"]" para garantir que o número do Webhook corresponde àquele de onde recebemos os dados; caso não corresponda, substitua pelo necessário (lembre-se: 1 é o número do nó exibido abaixo do nome dele; depois, se for uma consulta, você deverá escolher o campo do objeto responsável pelo tipo de dados enviados/recebidos — body para formulários ou query para parâmetros de consulta);
![]()
Em seguida, crie um nó "Http request" que fará uma solicitação para gerar textos com base nos parâmetros de texto da variável message no nó JS;
Crie o nó: "+ Add node" => "Http" => "HTTP request";
Salve;
Vamos conectar os nós;
Inicie e acione a cadeia para transferir dados entre os nós;
Vamos preencher o campo "Url": no início, substituiremos a variável "apiChatGPT" do nó "JavaScript" e, depois dela, especificaremos /completions;
Leia mais sobre esta e outras chamadas na API do ChatGPT ao final deste artigo;
Altere o método para "POST";
Em "raw", substitua a variável do primeiro nó "JavaScript";
Nos Headers, vamos adicionar dois:
- Content-Type com o valor: application/json
- Authorization: no valor, selecione uma variável do nó "JavaScript" com o nome: personalTokenChatGPT
![]()
Vamos salvar as alterações;
Adicione um nó "Webhook response" para retornar na resposta o texto gerado pelo ChatGPT: "+ Add Node" => "Http" => "Webhook response";
Salve;
Conecte os nós;
Inicie e acione a cadeia para transferir dados entre os nós;
Vamos adicionar a resposta recebida do nó anterior "Http request"; não se esqueça de especificar o índice entre os colchetes;
![]()
![]()
Vamos salvar as alterações;
Por fim, vamos adicionar mais um nó "Http request" para enviar as ofertas de marketing geradas e prontas pelo Mailgun: "+ Add node" => "Http" => "HTTP request";
Salve;
Conecte os nós;
Execute e acione a cadeia para transferir dados entre os nós;
Em seguida, acesse o site do Mailgun e vá até a seção: "Sending" => "Overview";
![]()
Copie o código CURL pronto:
![]()
Cole-o no "Http request" usando "Create from example (CURL)":
![]()
Em seguida, copie a chave e o domínio do site do Mailgun para algum lugar, como um bloco de notas;
![]()
Na Url, primeiro insira a variável apiMailgun do primeiro nó "JavaScript", depois /seu domínio no Mailgun/ e, ao final, /message;
Altere o método para "POST";
No corpo, selecione a aba "form-data";
No corpo, faremos tudo como nas capturas de tela abaixo:
- from: Mailgun Sandbox <postmaster@seu domínio no Mailgun>;
- To: sua caixa de e-mail de teste; para testar, selecione a variável clientEmail do nó "JavaScript" e coloque-a dentro de <>;
- subject: Hora de viajar?;
- text: variável com o texto recebido após a geração do nó "Webhook response";
![]()
Abaixo, no bloco "Authorization", ao lado do campo "Password", insira a variável apiKeyMailgun do primeiro nó "JavaScript";
Salve as alterações;
![]()
Vamos iniciar e acionar uma cadeia completa;
Depois disso, você deverá receber um e-mail com o texto gerado no endereço de e-mail especificado. Verifique sua pasta de spam caso não o encontre na caixa de entrada;
![]()
Obrigado pela atenção, nos vemos nos próximos artigos. Haverá outro sobre o ChatGPT! 😉
Links:
Básicos:


