Olá! Meu nome é Ricardo Bugan e, neste curso, vamos criar um chatbot que será utilizado no Slack. Nós faremos perguntas ao nosso chatbot de vendas, como, por exemplo: "Posso pedir o reembolso de um cliente que comprou há mais de 90 dias?".
O chatbot irá nos responder, verificando o pedido. Teremos uma inteligência artificial por trás, que se conectará com o chatbot e com a base de conhecimento que possuímos para fornecer uma resposta.
Se acessarmos o nosso N8n, podemos observar que temos uma inteligência artificial integrada.
Estamos com tudo funcionando, gerando uma resposta para nós. Ao analisarmos, percebemos que ela realiza consultas em uma base operacional e em uma base de informações do nosso EPS para gerar as respostas. Por exemplo, a resposta obtida foi: "depende do motivo, mais de 90 dias por si só não impede em todos os casos", e ela veio acompanhada de dados e políticas operacionais da nossa empresa, que estão salvas no Notion.
No Notion, temos algumas informações sobre a operação da empresa que o chatbot, que estamos criando, utilizará para fornecer informações ao nosso time operacional no Slack. Neste curso, vamos focar bastante no N8n, em como criar um agente de Inteligência Artificial que terá ferramentas para consultar essas bases de informações que são de nossa propriedade.
Além disso, veremos como carregar nossas bases de informação com os dados provenientes do Notion. Vamos criar toda a arquitetura necessária para estabelecer essas bases de informações, integrá-las à Inteligência Artificial e aplicar uma técnica de geração de respostas baseadas nas informações que possuímos. Isso é o que chamamos de HAG, ou geração de respostas aumentadas, pois o sistema consultará uma base de informações que recebemos.
Esperamos que você participe deste curso e que aprecie o que vamos aprender. Obrigado.
Para iniciar o nosso curso, vamos dar continuidade ao que estávamos fazendo no curso anterior. Estávamos trabalhando no relatório de NPS, onde coletamos e transformamos todos os dados com nossas automações. Agora, queremos disponibilizar esses dados de uma maneira que o time operacional de vendas consiga interagir, fazendo perguntas e obtendo respostas sobre esses dados e outros que trabalharemos neste curso, diretamente no canal de comunicação oficial do time, que é o Slack.
Neste curso, utilizaremos o Slack como um canal de comunicação, onde interagiremos com nossa automação. Vamos começar olhando como integrar o Slack com nossa automação no 8n. A primeira etapa será criar nossa automação e o workflow para ter um chatbot voltado para o time de vendas. Vamos criar um novo workflow e nomeá-lo como chatbot de vendas, com o gatilho sendo uma mensagem.
Queremos que, quando alguém mencionar nosso bot no Slack, a automação seja disparada. Assim, a pessoa já envia a mensagem com a informação ou pergunta que deseja responder. Para isso, utilizaremos o gatilho do Slack que dispara a automação quando o aplicativo é mencionado.
No entanto, ainda não configuramos o Slack. Precisamos criar nossa credencial e o aplicativo, pois necessitamos do access token e do signature secret. Essas duas informações são essenciais para conectar com nosso canal do Slack. No Slack, criaremos essa aplicação. Vamos ao OmniHack, em ferramentas e configurações, e em ferramentas do administrador. É importante ser administrador para criar uma aplicação. Caso contrário, será necessário solicitar essas informações ao administrador do workspace no Slack.
Nas configurações do workspace, criaremos uma nova aplicação. Neste curso, utilizaremos o Slack, mas é possível usar o Teams, Discord ou qualquer outra ferramenta de comunicação de chat. Optamos pelo Slack devido à sua popularidade e facilidade de integração, o que facilita a demonstração do fluxo no curso. A ideia é que você consiga adaptar o que estamos ensinando para o seu contexto.
No painel de configurações do workspace do Slack, criaremos uma nova integração. Nosso aplicativo será uma integração que ajudará a conectar o N8n com o workspace no Slack. Já temos alguns aplicativos instalados de outros cursos, mas vamos criar um novo aplicativo ou bot. Ele será chamado de chatbot de vendas e será do workspace OmniHack, que é o único em nossa conta do Slack no momento. Se houver vários workspaces, é importante verificar para não confundir o workspace em uso.
Ao criar o aplicativo, já teremos a primeira informação necessária: o segredo, ou assinatura secreta. Vamos copiá-la e colocá-la na nossa assinatura secreta. O próximo passo é definir as configurações e permissões do aplicativo. Ele terá acesso restrito a determinadas funcionalidades dentro do workspace.
Nas permissões, na seção OAuth e Permissions, definiremos os escopos de permissão do aplicativo no Slack. Vamos criar um OAuth Scope no Bot Token Scopes, pois estamos usando um bot. Adicionaremos as permissões necessárias, como ler menções do aplicativo, acessar e ler canais, escrever em tópicos e enviar mensagens privadas (IM). Também queremos que o bot consiga ver usuários e grupos de mensagens diretas.
Essas são as permissões iniciais que nosso aplicativo terá dentro do Slack para funcionar corretamente.
Aqui em cima, vamos solicitar a instalação do aplicativo dentro do nosso OmniHack, que é o workspace que estamos utilizando. Ele irá até o OmniHack, concederá as permissões necessárias, e nós permitiremos a instalação do aplicativo. Se verificarmos no Slack agora, podemos ver que o chatbot de vendas está instalado nos nossos aplicativos. Ele está instalado e possui o OAuth Token, que precisamos copiar e colocar no nosso Access Token. Assim, temos um token de acesso que será salvo, juntamente com a nossa assinatura. Com essas duas informações, já configuramos uma credencial.
O próximo passo é saber quando o nó irá ler a informação do Slack, ou seja, quando o bot ou o aplicativo for mencionado. Para isso, precisamos configurar um webhook para que o chat ou bot que estamos criando tenha acesso a eventos dentro do nosso canal do Slack. Vamos voltar às permissões e, no menu, encontramos "Features". Já estamos em OAuth e Permissões, e logo abaixo temos "Event Subscriptions". Assim, ele pode se inscrever e ouvir eventos que ocorrem no Slack. No entanto, isso precisa ser ativado, pois ainda não está. Vamos ativar, e ele solicitará uma URL. Quando um evento ocorrer no Slack, para onde enviaremos essa informação? É isso que chamamos de webhook. O webhook URL é o endereço do próprio N8n, que estará ouvindo. Quando um evento ocorrer, enviaremos para essa URL, que estará ouvindo. Vamos copiar essa URL.
Se copiarmos essa URL e colarmos, ocorrerá um erro. Ele tentará enviar, mas dará erro, pois a URL não respondeu como esperado. Isso acontece porque o nosso N8n não estava esperando, não estava ouvindo nenhum evento no momento, estava desativado. Precisamos que ele fique ouvindo algum evento para cadastrar a URL no nosso aplicativo. A única coisa que falta é escolher de qual canal vamos ouvir. Como não temos um canal específico, queremos que o chatbot responda em qualquer lugar que for mencionado. Vamos habilitar o "Home Workspace". Assim, no workspace como um todo, o chatbot estará ouvindo. Agora ele está esperando, e podemos configurá-lo para ouvir eventos. Precisamos dar um retry. Após o retry, ele conseguiu verificar e cadastrar a URL correta.
Detalhe: temos duas URLs. Agora podemos parar de ouvir eventos. Vamos parar o processo. Se o N8n ainda quiser responder, será ótimo. Ele não está respondendo agora, mas em breve parará. Vamos voltar ao Slack para continuar configurando, pois há mais um detalhe a ser configurado. Precisamos acessar os eventos. Ele pode se inscrever em eventos, mas precisamos adicionar qual evento. No nosso caso, queremos o "AppMention". Vamos salvar as alterações.
Por fim, salvamos as alterações. Configuramos o signature, o segredo de assinatura, e o token de acesso. Configuramos para ouvir eventos e especificamos o evento "AppMention". Agora podemos chamar o evento no Slack. Se chamarmos o chatbot de vendas, ele já é um evento. Vamos enviar uma mensagem como "Olá, como você está?". Se fizermos isso agora, o chatbot não está no canal e não conseguirá ouvir. Precisamos adicioná-lo. Após convidar o chatbot, no N8n, ainda não aconteceu nada, mas ele está ouvindo. Vamos chamar novamente a mensagem. O chatbot deveria estar ouvindo. No N8n, parece que ele travou. Vamos esperar um pouco para ver se ele funciona ou se estava travado. Aparentemente, estava travado. Vamos parar e sair dessa tela. Vamos salvar as configurações e voltar ao chatbot de vendas para tentar novamente. Agora ele está funcionando corretamente. Vamos pedir para ele ouvir novamente e tentar mais uma vez. No Slack, agora ele ouviu e conseguiu. Ele estava travado anteriormente.
Agora, ele está ouvindo o nosso tipo de evento. Ele entendeu que foi um evento de "AppMention". Ele conseguiu pegar o ID do cliente que enviou a mensagem e o texto da mensagem. Apesar de parecer estranho, o formato "<@U0AB01>" é o ID do usuário do chatbot. No texto que colocamos como "chatbot vendas", ele sempre traduzirá para um ID. Depois vem o texto, "mais uma tentativa". Esse foi o texto completo, e temos esse ID. Abaixo, há os blocos. Ele conseguiu ter dois blocos: um bloco com elementos. Os elementos são o primeiro elemento, que é o nosso usuário, e o segundo elemento, que é o texto. O usuário "U0AB01S" é o nosso chatbot, e "mais uma tentativa" foi o texto que colocamos. Ele consegue ouvir o nosso evento, como está configurado agora, para enviarmos mensagens e dispararmos uma automação no N8n, permitindo que a equipe tenha acesso às informações da pesquisa através de um chatbot configurado pelo N8n.
Demos o primeiro passo, que é trabalhoso. Essa configuração é complexa, por isso foi feita em vídeo, pois é detalhada e passo a passo. Agora está configurada, e vamos continuar no N8n para criar um chatbot inteligente.
Com o nosso chatbot configurado, conseguimos ter uma interação. Para começar de forma gradual, vamos responder ao chat. Temos aqui o texto de uma tentativa anterior, mas agora vamos enviar uma mensagem real. Vamos chamar o chatbot e solicitar: "Resuma para nós os problemas que os clientes de São Paulo deram como feedback."
Ao enviar a mensagem, percebemos que não pedimos para o chatbot ficar ouvindo, então ele não vai responder. Vamos copiar a mensagem e enviá-la novamente para garantir que o texto está correto. Inicialmente, ele respondeu com "Como você está?", mas não era isso que queríamos. Agora, ele conseguiu atualizar e já temos a informação que queremos enviar para responder à pergunta.
Para responder à pergunta, ao invés de enviar diretamente para uma IA, queremos que a IA analise nossos dados e responda. Antes disso, vamos responder à pessoa: "Está tudo certo, estou verificando para você e já trago a resposta." Para isso, vamos adicionar mais um nó no Slack, onde enviaremos uma mensagem em um canal. Podemos enviar para um canal ou para uma pessoa específica. Neste caso, vamos enviar para um canal, pois temos o ID do canal da mensagem recebida.
Para enviar a mensagem ao canal correto, utilizamos o seguinte código para obter o ID do canal:
{{ $json.channel }}
Vamos enviar uma mensagem simples com o texto: "Olha, usuário, já estou procurando e já te respondo." Para que o nome da pessoa seja traduzido corretamente, ele deve estar no formato <@ID_da_pessoa>. Para isso, utilizamos o seguinte código para obter o ID do usuário:
{{ $json.user }}
Agora, formatamos corretamente a mensagem para incluir o nome do usuário:
<@{{ $json.user }}> Já estou verificando seu pedido.
Vamos formatar corretamente e executar esse passo para ver a resposta chegando. No entanto, o Slack não está colaborando e deu um erro na execução. Vamos fixar essas informações para evitar problemas e tentar novamente.
Aparentemente, o problema está nas permissões. Vamos verificar se faltou alguma permissão ou se alguma não foi salva corretamente. Nos escopos, temos app_mentions, channel_reads, e ele deveria ter permissão de write dentro de um canal. Vamos adicionar chat_write para enviar mensagens e permitir que ele funcione como um agente. Não queremos que ele convide pessoas ou escreva em chamadas, mas ele pode escrever em canais públicos.
Após ajustar as permissões, precisamos reinstalar o aplicativo no workspace. Vamos parar o fluxo de trabalho que deu erro e tentar novamente com as permissões alteradas. Agora sim, era realmente um problema de permissões. O Slack entendeu o nome corretamente e o aplicativo traduziu para nós. Uma vez executado, ele deveria parar, mas o Slack está com problemas para finalizar a execução. Vamos salvar e recarregar a página.
Agora, com o n8n e o Slack funcionando, temos o nome da pessoa que enviou a mensagem e a resposta: "Já estou verificando o seu pedido." O próximo passo é utilizar um agente de IA para fazer a análise. Até o momento, estávamos chamando o Gemini e enviando uma mensagem para ele. Vamos continuar com esse processo.
No prompt, temos a possibilidade de escrever de forma interessante, especialmente se tivermos uma fonte de dados, como um documento de pesquisa. Nesse caso, devemos sempre passar essa fonte de dados, ler as informações contidas nela, pedir para verificar e assim por diante. Se tivermos um escopo pequeno, podemos simplesmente solicitar a verificação das informações e indicar quais dados devem ser utilizados. No entanto, se lidarmos com uma rede de informações muito complexa e extensa, não é prático manipular os dados manualmente. Podemos, então, delegar essa tarefa à Inteligência Artificial (IA).
Para isso, não basta apenas enviar uma mensagem para o modelo; precisamos usar um agente de IA. Vamos criar um agente de IA, e a configuração dele será diferente. Ele possui três canais que precisamos configurar. O primeiro é o modelo de IA que estamos usando. No nosso caso, utilizamos o Gemini, então continuaremos com ele. O Gemini oferece algumas possibilidades, incluindo a configuração padrão de 2.5 flash.
Além disso, temos a ferramenta que podemos escolher para o agente usar. Queremos que ele tenha acesso ao Google Sheets. No Google Sheets, podemos selecionar qual documento será utilizado, pegando a URL do documento e informando que ele tem acesso a esse documento específico. Queremos que ele acesse a lista e obtenha os novos dados. Assim, ele terá acesso a toda a planilha sem precisar especificar linhas ou colunas. Se a planilha crescer, ele continuará acessando corretamente. Poderíamos também dar acesso a outras planilhas, mas vamos nos limitar aos dados da pesquisa por enquanto.
Com o acesso às informações, o agente pode obter dados do Google Sheets da planilha selecionada. Agora, podemos definir qual será a mensagem ou o input. Por padrão, ele está configurado como um chat, mas queremos definir o prompt inicial. O prompt inicial será a mensagem enviada no início, que serviu como gatilho. Vamos pegar o texto limpo, sem a menção do chatbot, e usá-lo como prompt. Assim, ao invés de um prompt fixo, o que foi enviado no chat do Slack será utilizado como prompt para a IA.
Para capturar o texto da mensagem original, utilizamos o seguinte código:
{{ $('Slack Trigger').item.json.blocks[0].elements[0].elements[1].text }}
Podemos guiar o processo, instruindo o agente a usar a ferramenta do Google Sheets para buscar informações do relatório. Dessa forma, ele utiliza a ferramenta configurada e executa o passo. Ao fazer isso, ele acessa o Google Sheets, obtém 130 itens de uma vez e gera uma resposta. O output pode ser visualizado em formato de tabela ou JSON, facilitando a análise. Por exemplo, problemas relatados por clientes de São Paulo incluíram produto enviado errado e atraso identificado. Ele filtrou as informações relevantes, como se tivéssemos aplicado um filtro manualmente.
Podemos testar com outros estados, como o Rio Grande do Sul, que aparentemente possui mais informações. Ao executar novamente, o agente resume os problemas dos clientes do RS, como produto com defeito e pedidos sem comentários registrados. Assim, sem a necessidade de tratamento manual dos dados ou envio da planilha completa no prompt, fornecemos uma ferramenta para o agente de IA decidir quando e como utilizá-la. No nosso caso, ao solicitar informações específicas do relatório, a tendência é que ele use a ferramenta sempre que necessário. Podemos conectar várias ferramentas diferentes para que o agente escolha qual usar e quando.
O curso Automação de processos com n8n: integração de bases de conhecimento possui 137 minutos de vídeos, em um total de 36 atividades. Gostou? Conheça nossos outros cursos de Automação e Produtividade em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Matricule-se no plano PLUS e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Mobile, Programação, Front-end, DevOps, UX & Design, Marketing Digital, Data Science, Inovação & Gestão, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para estudantes ultra comprometidos atingirem seu objetivo mais rápido.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.