Neste tutorial, explicaremos como podemos delegar a criação de eventos de calendário a um agente de IA usando n8n. Ao final do artigo, esperamos que você tenha confiança para implantar seus próprios agentes de IA de maneira semelhante.
Este fluxo de trabalho do tutorial foi projetado para ajudar os organizadores de eventos ad hoc a criar e gerenciar convites de calendário de equipe para seus eventos por meio do Slack. O cenário típico envolve o organizador – digamos, um gerente de produto – postando uma mensagem no Slack propondo reunir a equipe em um restaurante local para comemorar seu progresso. Eles geralmente pedem aos membros interessados da equipe que reajam ao comentário com uma marca de seleção (✅) para confirmar presença. Nosso fluxo de trabalho capturará a mensagem e, por meio do poder de um agente de IA, criará de forma autônoma um convite de calendário preenchendo o título, resumo, data e hora, mas também o local. Além disso, quando os membros da equipe responderem à mensagem com a marca de seleção, nós os adicionaremos ao convite do calendário como participantes para que possam se beneficiar das notificações.
Pré-requisitos
Channels:history
, channels:read
, chat:write
, groups:history
, groups:read
, im:history
, im:read
, mpim:history
, mpim:read
, reactions:read
, reactions:write
, search:read
, users:read
, users:read.email
Etapa 1. Crie um canal de eventos no Slack
Neste tutorial, criaremos um novo canal chamado #n8n-events, porém você pode usar um canal existente se preferir. Este será o canal que nosso fluxo de trabalho monitorará em busca de novas mensagens e atualizações de mensagens.
Também apresentaremos uma nova regra; capturaremos apenas mensagens marcadas com a reação do calendário (📅). Como podemos filtrar com base nisso em nosso fluxo de trabalho, ajuda a simplificar o processo de identificação de quais mensagens são realmente convites.
- Tal como acontece com todos os fluxos de trabalho de monitoramento, crie um gatilho programado e defina o intervalo para 1 hora. Podemos definir um intervalo maior, pois não esperamos que este fluxo de trabalho lide com eventos urgentes nem respostas urgentes. Ajuste isso para melhor se adequar à sua equipe.
- Adicione um nó Slack para acionar e selecione a operação “Pesquisar” para o recurso “Mensagem”. Defina o filtro para o seguinte em:#n8n-events has::calendar:
Isso irá buscar todas as mensagens de convite aplicáveis. Se não houver resultados, pode ser necessário adicionar uma ao canal e marcá-la com a reação do calendário (📅).
Passo 2. Crie um novo convite da mensagem
Precisaremos processar cada mensagem de convite separadamente e, para evitar a duplicação de eventos da agenda, precisaremos de uma forma de rastrear qual mensagem de convite já foi processada. Podemos fazer isso de várias maneiras, mas para o nosso tutorial procuraremos uma resposta automática à mensagem de convite original que criaremos mais tarde. Esperamos que, se esta resposta automática existir, ela contenha um ID de evento de calendário, o que significa que a mensagem já foi processada e, portanto, podemos pular a etapa de criação.
- Adicione um nó do Slack para buscar todas as respostas às nossas mensagens de convite. Nas configurações do nó, defina o recurso como “Canal”, a operação como “Respostas”, o canal como “#n8n-events” e o carimbo de data / hora da mensagem como `{{ $json.ts }}` que é o nosso ID de mensagem.
- Com as respostas, precisaremos calcular algumas coisas para determinar se o convite tem uma resposta de bot válida contendo nosso ID de evento. Infelizmente, essa parte é um pouco complicada e requer um pouco de código para executar essa lógica.
- Assim que conseguirmos determinar se um evento de calendário precisa ser criado, ou seja. verificando se não existe nenhum ID de evento, podemos prosseguir para a criação do evento de calendário.
Etapa 3. Gerar o evento do calendário com o AI Agent
Em nosso fluxo de trabalho do tutorial, introduzimos uma ramificação que depende da necessidade de criação de um novo evento. Uma filial procederá à criação do evento do calendário, enquanto a outra atualizará a lista de participantes se o evento já existir. Começaremos criando primeiro o branch de eventos do calendário.
É aqui que apresentaremos nosso Agente de IA. Dada a mensagem original do convite, que pode ter sido curta por questões de brevidade, há muito que podemos fazer para aprimorar os dados contidos nela e criar um convite mais abrangente.
- A seguir, vamos adicionar um nó AI Agent e um subnó OpenAI para o modelo.
- Nas opções do subnó de ferramentas, usaremos as ferramentas integradas: pesquisa SERP e Wikipedia. Também poderíamos adicionar ferramentas personalizadas para nosso agente, mas isso está fora do escopo deste tutorial por enquanto.
- A seguir, atualizaremos a seção de prompt no nó do AI Agent para incluir a mensagem de convite original e as seguintes instruções:
- Resuma e gere um título e uma descrição e peça para tornar ambos “atraentes”!
- Extraia as datas e horários de início e término do evento.
- Determine a localização do evento e use nossa ferramenta de pesquisa SERP anexa e a Wikipedia para obter o endereço exato.
- Por fim, alterne a opção “Exigir formato de saída específico” no nó AI Agent e adicione o subnó “Structured Output Parser”. O objetivo deste subnó é retornar a saída final do Agente em formato JSON, em vez de prosa, para que possamos inserir isso diretamente em nossa próxima ação.
Etapa 4. Envie o evento gerado para o Google Agenda
Agora que temos todas as propriedades do nosso evento gerado, só precisamos usá-las para construir uma chamada à API do Google Calendar para criar o evento real em nosso calendário.
- Adicione um nó do Google Agenda e defina o recurso como “Evento” e a operação como “Criar” e certifique-se de que o menu suspenso Calendário esteja definido como o calendário desejado.
- Preencha o restante dos campos com os dados fornecidos pelo nó do Agente AI, que incluirão o título, resumo, datas e horários de início e término e local.
Por fim, para confirmar que este convite foi processado, criaremos uma resposta automática à mensagem de convite original no Slack, que conterá nosso ID do evento.
- Adicione outro nó do Slack com recurso definido como “Mensagem” e operação definida como “Enviar”. Defina “Enviar mensagem para” como “canal” e use o mesmo ID de canal da mensagem de convite original.
- Preencha o texto da mensagem com o que quiser, mas certifique-se de incluir o ID do seu evento. Para este tutorial, usamos o seguinte formato #event{{ $json.id }}.
- Por fim, clique nas opções na parte inferior e selecione a opção “responder à mensagem”. Em “Message Timestamp to Reply To” defina como o valor da mensagem de convite “ts” ou “thread_ts”. Deixe o botão “responder ao tópico” na posição desligado.
E é isso na parte 1! Aprendemos como usar o nó Agent AI do n8n para gerar eventos com base em mensagens arbitrárias, permitindo que a IA preencha informações importantes com base em dicas dentro da mensagem de convite original, economizando ao organizador humano uma quantidade considerável de tempo e esforço.
Parte 2
Na parte 2, iremos mais longe com nosso branch alternativo onde o evento já existe. Neste ramo, queremos tratar o caso em que qualquer membro da equipe que reagiu à mensagem de convite com um emoji de marca de seleção (✅) para indicar seu desejo de ingressar no evento é adicionado automaticamente como participante do evento do calendário.
Etapa 5. Buscar as reações dos membros da equipe à mensagem de convite do Slack
Nesta etapa, precisaremos buscar 2 dados; o evento existente para que tenhamos uma referência para atualizá-lo posteriormente e todas as reações dos membros da equipe encontradas na mensagem de convite do Slack.
- Para obter o evento existente, adicione um nó do Google Agenda para buscar o evento da agenda usando o ID do evento extraído da resposta automática quando criamos o evento. Faça isso definindo o recurso como “Evento” e a operação como “Obter”. Insira o ID do evento adequadamente.
- Para obter as reações dos membros da equipe, adicione um nó do Slack definindo o recurso como “Reação” e a operação como “Obter”. Defina o ID do canal como o da mensagem de convite e o “Message Timestamp” como o valor ts da mensagem de convite.
- Em seguida, precisaremos filtrar as marcas de seleção (✅) e extrair uma lista dos usuários aos quais elas pertencem. Use os nós Split Out e Filter para essa finalidade.
- Feito isso, você deverá ficar com uma lista de IDs de usuário do Slack. Usaremos isso para criar participantes para nosso evento.
Etapa 6. Resolva o endereço de e-mail do usuário e adicione-o ao nosso evento
Para obter o endereço de e-mail do usuário, precisaremos consultar a API do usuário do Slack com os IDs de usuário que obtivemos na última etapa. Observe que esta API requer permissões elevadas, o que significa que seu aplicativo Slack para seu token pode precisar ser instalado por um administrador.
Faremos uma última verificação para comparar o endereço de e-mail do membro da equipe com a lista de participantes existente do convite do calendário. Só adicionaremos o participante se ele ainda não estiver adicionado.
- Adicione um nó Slack e defina o recurso como “Usuário” e a operação como “Obter”. Passe os IDs de usuário obtidos na etapa anterior. Com sucesso, devemos obter o perfil do usuário que inclui seu endereço de e-mail.
- Em seguida, adicione um nó IF onde usaremos a lista de participantes do evento existente que buscamos na Etapa 5 para filtrar a lista atual de endereços de e-mail. Isso deve nos deixar com uma lista de novos participantes para ingressar no evento do calendário.
- Por fim, adicione um nó do Google Agenda e defina o recurso como “Evento” e a operação como “Atualização”. Defina o ID do evento como o ID do evento existente encontrado anteriormente no fluxo de trabalho.
- Na seção “Atualizar campos” do nó do Google Agenda, clique em Adicionar campo e selecione Participantes. É aqui que adicionamos o endereço de e-mail do novo participante.
E é isso na Parte 2! Nesta segunda parte, aprendemos como podemos estender os fluxos de trabalho n8n de forma incremental para agregar mais valor ao longo do tempo.
Concluir
Neste tutorial, automatizamos um canal simples de eventos do Slack em um sistema de gerenciamento de eventos com tecnologia de IA que certamente aumentará o envolvimento e a participação em reuniões internas da empresa ou construção de comunidade.
Crie seus próprios fluxos de trabalho
Crie automações complexas 10 vezes mais rápido, sem lutar contra APIs
Experimente n8n agora