Construa um Assistente de IA Completo para WhatsApp com N8n Pronto para Uso

8 de julho de 2025

Desenvolva um agente de IA para WhatsApp personalizado para sua empresa que possa interpretar comunicações de clientes por texto, voz e imagens, respondendo em formatos escrito e falado

Usando este guia, você pode implantar um assistente de IA totalmente operacional com capacidades multimídia no seu sistema ou infraestrutura em nuvem em minutos. Esse assistente funcionará como um representante de atendimento ao cliente digital, adaptado às necessidades específicas do negócio.

Discover Flows! The new Wassenger feature to automate your messages

Sumário

  • Introdução
  • Configuração
  • Personalização
  • Implementação de processamento multimídia: Texto
  • Implementação de processamento multimídia: Voz
  • Implementação de processamento multimídia: Imagens
  • Integração RAG (Retrieval-Augmented Generation)
  • Lançamento e Testes

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp. Registre-se para um teste gratuito de 7 dias e comece imediatamente!

Neste guia, você aprenderá a construir um assistente para WhatsApp movido pelo ChatGPT que pode:

  • Lidar e responder a mensagens escritas com respostas contextuais e precisas
  • Converter e analisar gravações de voz para fornecer respostas adequadas
  • Analisar e extrair dados de imagens para criar respostas relevantes
  • Gerenciar combinações desses formatos de entrada em conversas contínuas

Utilizaremos o recurso integrado Flows do Wassenger (com tecnologia n8n), a API do Wassenger para conectividade com o WhatsApp e a API da OpenAI (ChatGPT) para fornecer ao nosso assistente capacidades avançadas de processamento de linguagem natural e compreensão multimídia.

Ao concluir este guia, você terá um assistente de WhatsApp totalmente funcional que pode compreender e responder às consultas dos clientes independentemente do formato de apresentação, melhorando substancialmente a experiência do usuário e a eficácia do atendimento ao cliente.

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp com o recurso integrado Flows (automação de workflows). Registre-se para um teste gratuito de 7 dias e comece imediatamente!

Vamos começar configurando nosso assistente multimídia para WhatsApp usando o recurso integrado Flows do Wassenger.

Requisitos

  • Conta no Wassenger com acesso ao recurso Flows: Registre-se gratuitamente para obter acesso à API e capacidades de automação de workflows
  • Número de WhatsApp: Pelo menos um número de WhatsApp vinculado ao Wassenger
  • Credenciais da API OpenAI: disponíveis aqui
  • Conta Google

Importante! 💬 O recurso Flows do Wassenger fornece automação de workflows integrada com tecnologia n8n, eliminando a necessidade de auto-hospedagem ou configuração separada da plataforma n8n. Tudo funciona diretamente na plataforma do Wassenger!

Agora, vamos construir nosso novo Assistente de IA! 🤖

Configuração

1. Acesse o recurso Wassenger Flows

No seu painel do Wassenger, navegue até a seção ‘Flows’ para acessar o recurso integrado de automação de workflows com tecnologia n8n.

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp com o recurso integrado Flows (automação de workflows). Registre-se para um teste gratuito de 7 dias e comece imediatamente!

2. Configure o gatilho (Trigger) do Wassenger

Agora que estamos na interface dos Flows, vamos estabelecer o gatilho da seguinte forma:

  • Selecione ‘Add first step’
  • Pesquise por ‘Wassenger Trigger’ (já integrado na plataforma)
  • Escolha o gatilho ‘On new inbound message received
  • Uma janela similar a esta aparecerá

Como você está trabalhando dentro da plataforma Wassenger, as credenciais da API estão automaticamente configuradas para sua conta.

3. Configure seu Flow Trigger

Como você está usando o recurso Flows integrado do Wassenger, a configuração do webhook é tratada automaticamente na plataforma. Simplesmente:

  • Selecione o número de WhatsApp que você deseja monitorar para mensagens recebidas

  • Escolha os tipos de mensagem que deseja processar (texto, áudio, imagens)

  • O sistema encaminhará automaticamente as mensagens para o seu Flow

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp com o recurso integrado Flows (automação de workflows). Registre-se para um teste gratuito de 7 dias e comece imediatamente!

4. Construa um módulo que identifique texto, voz e imagens

Primeiro, selecione ‘Test step’ para receber os dados da mensagem recebida no seu Flow do Wassenger para gerenciamento e processamento:

Após enviar uma mensagem para o seu número do WhatsApp conectado, você verá algo semelhante a isto:

Agora podemos começar a trabalhar com os dados recuperados

Vamos criar um módulo ‘Switch’ dentro da interface Flows

Em seguida, estabeleceremos três cenários possíveis e incluiremos uma expressão definida que separará os diferentes tipos de mensagem

  • Text: {{ $json.data.type }}
  • Voice: {{ $json.data.media.type }}
  • Image: {{ $json.data.media.type }}

5. Inclua o Agente de IA

Agora vamos adicionar o módulo do Agente de IA que nos ajudará a analisar todas as mensagens recebidas e criar as respostas de saída

Clique no nó inferior do módulo ‘Switch’

A janela a seguir aparecerá.

Prosseguiremos com esta configuração:

  • Source for Prompt (User Message): DEFINE BELOW
  • Prompt (User Message): {{ $json.data.body }}

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp com o recurso integrado Flows (automação de workflows). Registre-se para um teste gratuito de 7 dias e comece imediatamente!

6. Vincule o modelo de chat OpenAI

Uma janela como esta aparecerá, e você inserirá suas credenciais da OpenAI

Crie uma conta OpenAI e localize suas credenciais aqui

Em seguida, adicione-as ao seu Flow do Wassenger

Agora vamos adicionar uma mensagem do sistema para fornecer instruções adicionais à IA, incluindo com quem a IA está se comunicando (Cliente) e o horário exato da conversa:

You are a helpful assistant named Sam.Respond with a friendly and kind tone.
You are currently speaking with {{ $('Switch').item.json.data.chat.name }}
The current time is {{ $now.toISO() }}

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp. Registre-se para um teste gratuito de 7 dias e comece imediatamente!

7. Inclua o nó de memória

O nó Memory permite que um modelo de IA lembre e referencie interações anteriores, não exigindo credenciais, pois é armazenado dentro do n8n

  • Aumente o ‘Context Window Length’ para 20
  • Defina o Session ID conforme mostrado abaixo
  • Mude o campo para Expression e adicione: {{ $(‘Switch’) }}

8. Construa o fluxo de mensagens de voz

Em seguida, vamos configurar como nosso bot irá analisar e tratar mensagens de voz enviadas pelos clientes. Vamos começar!

Como mostrado na imagem abaixo, o processo inclui 4 etapas principais:

  1. Recuperar a mensagem de voz da API do Wassenger
  2. Criar o arquivo de download através de uma requisição HTTP
  3. Converter a mensagem de voz usando a IA
  4. Enviar esse texto convertido para nosso agente de IA

Vamos recuperar a mensagem de voz no Wassenger.

Pesquise por Wassenger > Chat Files Download File

Configure o seguinte:

  • Adicione sua conta Wassenger
  • Selecione Chat Files como Resource
  • Operation: Get File Details
  • WhatsApp Number: {{ $json.device.id }}
  • File ID: {{ $json.data.media.id }}

Em seguida, adicionaremos um módulo HTTP para recuperar o arquivo

Configure o módulo da seguinte forma:

  • Method: GET
  • URL: https://api.wassenger.com{{ $('Wassenger Trigger').item.json.data.media.links.download }}
  • Authentication: Generic Credential Type
  • Generic Auth Type: Header Auth
  • Header Auth: Use suas credenciais da Wassenger API (disponíveis automaticamente nos Flows)

Então, adicionaremos:

  • Name: Token
  • Value: Seu token da API do Wassenger (acessível diretamente na plataforma Flows)

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp. Registre-se para um teste gratuito de 7 dias e comece imediatamente!

Agora, adicionaremos o módulo OpenAI que converte a mensagem de voz

Pesquise por: New module > Advanced AI > OpenAI > Transcribe a recording

Depois, configure o módulo:

Por fim, enviaremos a mensagem de voz convertida para nosso agente de IA usando o módulo SET

E configure-o:

  • Mode: Manual Mapping
  • Fields to Set: data.body como String e {{ $json.text }}

Agora nossa conversão de Voz está pronta!

9. Processar imagens

Para que nosso BOT analise imagens, executaremos um processo semelhante ao das mensagens de voz. Vamos ver:

A partir do módulo Switch, adicione um novo módulo Wassenger Download Media

Configure o seguinte:

  • Adicione sua conta Wassenger
  • Selecione Chat Files como Resource
  • Operation: Get File Details
  • WhatsApp Number: {{ $json.device.id }}
  • File ID: {{ $json.data.media.id }}

Em seguida, vamos recuperar a imagem usando o módulo HTTP como fizemos anteriormente com as mensagens de voz

  • Method: GET
  • URL: https://api.wassenger.com{{ $('Wassenger Trigger').item.json.data.media.links.download }}
  • Authentication: Generic Credential Type
  • Generic Auth Type: Header Auth
  • Header Auth: Use suas Wassenger API credentials (disponíveis automaticamente nos Flows)

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp. Registre-se para um teste gratuito de 7 dias e comece imediatamente!

Agora, adicionaremos o módulo OpenAI que processa a imagem

Pesquise por: New module > Advanced AI > OpenAI > Analyze image

E configure o módulo da seguinte forma:

  • Credential to connect with: Conta OpenAI (defina as credenciais mencionadas anteriormente)
  • Resource: Image
  • Operation: Analyse Image
  • Model: CHATGPT-4O-LATEST
  • Text input: Analyse the image
  • Input Type: Binary File(s)
  • Input Data Field Name: data

Por fim, adicione o módulo SET para transferir todas as informações ao nosso agente de IA

E configure-o:

  • Mode: Manual Mapping
  • Fields to Set: data.body como String e
# The user submitted the following image and text.
## Image Description:
{{ $json.content }}

Perfeito! Agora temos três cenários possíveis para o nosso bot processar texto, voz e imagens

Agora vamos configurar como queremos que nosso bot responda com base no tipo de mensagem recebido

10. Construa a resposta em Voz

A partir do nosso módulo AI Agent, vamos adicionar um novo módulo chamado ‘IF’. Isso nos ajudará a modificar nossa resposta dependendo do tipo de mensagem recebida.

Para a configuração, estabeleceremos um valor ‘true’ ou ‘false’ dependendo se a mensagem recebida é de voz ou uma imagem/texto. Para mensagens de voz, responderemos com uma mensagem de voz diferente, mas essa configuração pode ser ajustada conforme sua preferência. As opções são ilimitadas!

Condições: {{ $(‘Switch’).item.json.data.media.type }} é igual a audio

Agora, vamos criar o fluxo de resposta por voz, começando por adicionar o módulo OpenAI para gerar áudio:

Add nodes > Advanced AI > OpenAI > Generate Audio

E configure-o assim:

  • Credential to connect with: OpenAI account (use as credenciais mencionadas anteriormente)
  • Resource: Audio
  • Operation: Generate Audio
  • Model: TTS-1
  • Text input (Expression): {{ $('AI Agent').item.json.output }}
  • Voice: Selecione sua preferência

Para que o WhatsApp reconheça nosso áudio gerado, precisamos convertê-lo de audio/mp3 para audio/mpeg usando um script simples fornecido abaixo:

Crie um novo Code module

  1. Configure-o com o seguinte código JavaScript:
// Loop over input items and change the MIME type of binary data
for(const item of $input.all()) {
// Check if the item has binary data
if(item.binary) {
// Find the binary property name(assuming there's at least one)
const binaryPropertyNames = Object.keys(item.binary);
for(const propName of binaryPropertyNames) {
// If the MIME type is 'audio/mp3', change it to 'audio/mpeg'
if(item.binary[propName].mimeType === "audio/mp3") {
item.binary[propName].mimeType = "audio/mpeg";
}
}
}
}
return $input.all();

Uma vez que nosso áudio esteja convertido para o formato apropriado para envio através do Wassenger, precisamos armazená-lo localmente ou na nuvem. Aqui, usaremos a nuvem, fornecendo assim uma URL pública para que este arquivo possa ser enviado pela Wassenger API. Para este tutorial, selecionamos o Google Drive, mas você pode usar qualquer plataforma que funcione melhor para você.

Crie um novo módulo para Google Drive (Upload File)

  1. Configure todas as credenciais do Google dentro dos Flows do Wassenger

Se você não sabe como conectar sua conta Google aos Wassenger Flows, assista a este tutorial

  1. Em File Name, adicionaremos a seguinte expressão: {{ $json.fineName }}
  2. Defina o Parent Drive como My Drive
  3. Para a Pasta Pai, precisamos criar uma nova pasta dentro do nosso Drive

Em seguida, torne essa pasta pública para ser acessível a partir dos Flows do Wassenger. Se você não tornar a pasta pública, a chamada à API retornará acesso não autorizado

🤩 🤖 Wassenger fornece uma plataforma de API abrangente para WhatsApp. Registre-se para um teste gratuito de 7 dias e comece imediatamente!

Agora, criaremos um módulo Send Multimedia Message com o Wassenger para enviar o áudio recém-gerado extraído da URL fornecida pelo Google Drive

Configure o módulo:

  • Defina o número de origem com o qual você deseja enviar a mensagem
  • Defina o número de destino recuperado dos dados do webhook que configuramos inicialmente: {{ $(‘Switch’).item.json.data.fromNumber }}
  • Defina a URL do arquivo: {{ $json.webContentLink }}

Por fim, removeremos nosso arquivo do Google Drive para evitar armazenar muitos arquivos na nuvem e ficar sem espaço. Esta etapa é opcional. Se você quiser manter todos os arquivos de áudio gerados, pode fazê-lo, mas precisará adicionar uma variável para nomear os arquivos de áudio para evitar erros.

Defina o ID do arquivo a ser removido: {{ $(‘Google Drive’).item.json.id }}

🤩 🤖 Wassenger é uma solução de API completa para WhatsApp. Cadastre-se para um teste gratuito de 7 dias e comece em minutos!

11. Construa a resposta em Texto

Agora que temos nosso gerador de Voz, criaremos nosso gerador de mensagens de texto, que será executado a partir do módulo IF e lidará com casos em que os usuários nos enviam imagens (o bot analisará a mensagem com a imagem e retornará texto) ou quando nos enviam mensagens de texto simples

A partir do IF, adicione um novo módulo

E configure o módulo:

  • Credentials to connect with: Wassenger Key account
  • Resource: Send Message
  • Operation: Send Text Message
  • WhatsApp number: Seu Número Conectado
  • Target: Phone
  • Target: {{ $(Wassenger Trigger’).item.json.data.fromNumber }}`
  • Message: {{ $json.output }}

E pronto! Nosso bot está completamente configurado! Agora podemos testar o workflow para confirmar que tudo está funcionando corretamente.

Obtenha o workflow completo aqui!

{
  "name": "WhatsApp Agent Pro",
  "nodes": [
    {
      "parameters": {
        "device": "[DEVICE_ID_HIDDEN]",
        "events": ["message:in:new"]
      },
      "type": "n8n-nodes-wassenger.wassengerTrigger",
      "typeVersion": 1,
      "position": [380, 240],
      "id": "3e55c9a4-ca16-4fb5-8d6a-220b8ad01c9d",
      "name": "Wassenger Trigger",
      "webhookId": "[WEBHOOK_ID_HIDDEN]",
      "credentials": {
        "wassengerApiKey": {
          "id": "[CREDENTIAL_ID_HIDDEN]",
          "name": "WhatsApp API key"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $json.data.body }}",
        "options": {
          "systemMessage": "=You are a helpful assistant called Sam.Responde with a frendly and kinkd tone.\n\nYou are currently talking to {{ $('Switch').item.json.data.chat.name }}\n\nThe current time is {{ $now.toISO() }} "
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.8,
      "position": [2700, 260],
      "id": "41d0158b-ef6b-43ab-9c46-bad27fcac028",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [2640, 460],
      "id": "87e73037-c99f-42a6-86eb-e49015c0ad8c",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "id": "[OPENAI_CREDENTIAL_ID_HIDDEN]",
          "name": "OpenAi account"
        }
      }
    },
    {
      "parameters": {
        "device": "[DEVICE_ID_HIDDEN]",
        "phone": "={{ $('Wassenger Trigger').item.json.data.fromNumber }}",
        "message": "={{ $json.output }}",
        "options": {}
      },
      "type": "n8n-nodes-wassenger.wassenger",
      "typeVersion": 1,
      "position": [3540, 420],
      "id": "f9b6dbd2-0494-441d-9993-2180259473c5",
      "name": "Wassenger",
      "credentials": {
        "wassengerApiKey": {
          "id": "[CREDENTIAL_ID_HIDDEN]",
          "name": "WhatsApp API key"
        }
      }
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.data.media.type }}",
                    "rightValue": "audio",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "id": "94a56d29-cb88-4eb0-8d6b-07b1b91bfc3f"
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Voice message"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "e14c0da3-f892-46c2-af90-c81c963a0df5",
                    "leftValue": "={{ $json.data.media.type }}",
                    "rightValue": "image",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Image message"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "6ce0d87f-bdfc-4c65-a3fb-8d86bb682c4e",
                    "leftValue": "={{ $json.data.type }}",
                    "rightValue": "text",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Text message"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [1120, 240],
      "id": "3961ea74-1586-444b-9796-44f911fc8790",
      "name": "Switch"
    },
    {
      "parameters": {
        "resource": "chat-files",
        "operation": "getDeviceFileDetails",
        "device": "={{ $json.device.id }}",
        "fileId": "={{ $json.data.media.id }}"
      },
      "type": "n8n-nodes-wassenger.wassenger",
      "typeVersion": 1,
      "position": [1660, -160],
      "id": "8e5f176a-62fd-4067-b7be-fd4e611d8e41",
      "name": "Download Audio",
      "credentials": {
        "wassengerApiKey": {
          "id": "[CREDENTIAL_ID_HIDDEN]",
          "name": "WhatsApp API key"
        }
      }
    },
    {
      "parameters": {
        "url": "=https://api.wassenger.com{{ $('Wassenger Trigger').item.json.data.media.links.download }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [1880, -160],
      "id": "5f99188d-8cf2-46d4-a756-790e7f34c74e",
      "name": "Download Audio1",
      "credentials": {
        "httpHeaderAuth": {
          "id": "[HTTP_AUTH_CREDENTIAL_ID_HIDDEN]",
          "name": "Header Auth account"
        }
      }
    },
    {
      "parameters": {
        "resource": "audio",
        "operation": "transcribe",
        "binaryPropertyName": "=data",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [2100, -160],
      "id": "3c455966-a4b7-4108-84e0-84e416ca6bdf",
      "name": "Audio transcription",
      "credentials": {
        "openAiApi": {
          "id": "[OPENAI_CREDENTIAL_ID_HIDDEN]",
          "name": "OpenAi account"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "4aeaa661-b3e8-4587-851e-dac366a37d0c",
              "name": "data.body",
              "value": "={{ $json.text }}",
              "type": "string"
            }
          ]
        },
        "includeOtherFields": "=",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [2320, -160],
      "id": "8b274388-06dc-4edf-94eb-084f3abf2851",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "13087e41-3b49-4b44-96ed-5ff74651c371",
              "leftValue": "={{ $('Switch').item.json.data.media.type }}",
              "rightValue": "audio",
              "operator": {
                "type": "string",
                "operation": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [3200, 260],
      "id": "1c8d7147-9e91-4e76-b96d-9d88b5220aae",
      "name": "If"
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Switch') }}"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [2820, 460],
      "id": "ce935651-35bc-4caf-bdd2-a84ad509d3fc",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "resource": "audio",
        "input": "={{ $('AI Agent').item.json.output }}",
        "voice": "nova",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [3540, 160],
      "id": "2888d451-832d-44f6-93ca-b3a9342cb9ad",
      "name": "OpenAI",
      "credentials": {
        "openAiApi": {
          "id": "[OPENAI_CREDENTIAL_ID_HIDDEN]",
          "name": "OpenAi account"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "// Loop over input items and change the MIME type of binary data\nfor(const item of $input.all()) {\n // Check if the item has binary data\n if(item.binary) {\n // Find the binary property name(assuming there's at least one)\n const binaryPropertyNames = Object.keys(item.binary);\n\n for(const propName of binaryPropertyNames) {\n // If the MIME type is 'audio/mp3', change it to 'audio/mpeg'\n if(item.binary[propName].mimeType === \"audio/mp3\") {\n item.binary[propName].mimeType = \"audio/mpeg\";\n }\n }\n }\n}\n\nreturn $input.all();"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [3760, 160],
      "id": "f2a0b34a-ec2e-4984-9c5c-8bc3ed823d95",
      "name": "Code"
    },
    {
      "parameters": {
        "name": "={{ $json.fileName }}",
        "driveId": {
          "__rl": true,
          "value": "My Drive",
          "mode": "list",
          "cachedResultName": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive"
        },
        "folderId": {
          "__rl": true,
          "value": "[GOOGLE_DRIVE_FOLDER_ID_HIDDEN]",
          "mode": "list",
          "cachedResultName": "n8n whatsapp audios",
          "cachedResultUrl": "[GOOGLE_DRIVE_FOLDER_URL_HIDDEN]"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [3980, 160],
      "id": "bfff5e16-8ebd-40bd-91f9-b9ab8b572e54",
      "name": "Google Drive",
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "[GOOGLE_DRIVE_CREDENTIAL_ID_HIDDEN]",
          "name": "Google Drive account"
        }
      }
    },
    {
      "parameters": {
        "operation": "sendMedia",
        "device": "[DEVICE_ID_HIDDEN]",
        "phone": "={{ $('Switch').item.json.data.fromNumber }}",
        "mediaUrl": "={{ $json.webContentLink }}",
        "options": {}
      },
      "type": "n8n-nodes-wassenger.wassenger",
      "typeVersion": 1,
      "position": [4200, 160],
      "id": "02d42a3e-c444-409f-a20b-2ad4c48b723e",
      "name": "Wassenger1",
      "credentials": {
        "wassengerApiKey": {
          "id": "[CREDENTIAL_ID_HIDDEN]",
          "name": "WhatsApp API key"
        }
      }
    },
    {
      "parameters": {
        "operation": "deleteFile",
        "fileId": {
          "__rl": true,
          "value": "={{ $('Google Drive').item.json.id }}",
          "mode": "id"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleDrive",
      "typeVersion": 3,
      "position": [4420, 160],
      "id": "dcd55245-6092-4599-bea9-03e1faf06c6a",
      "name": "Google Drive1",
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "[GOOGLE_DRIVE_CREDENTIAL_ID_HIDDEN]",
          "name": "Google Drive account"
        }
      }
    },
    {
      "parameters": {
        "resource": "chat-files",
        "operation": "downloadDeviceFileDetails",
        "device": "={{ $json.device.id }}",
        "fileId": "={{ $json.data.media.id }}"
      },
      "type": "n8n-nodes-wassenger.wassenger",
      "typeVersion": 1,
      "position": [1660, 100],
      "id": "e86972a8-a14e-4718-a63d-ef3064888f10",
      "name": "Download image",
      "credentials": {
        "wassengerApiKey": {
          "id": "[CREDENTIAL_ID_HIDDEN]",
          "name": "WhatsApp API key"
        }
      }
    },
    {
      "parameters": {
        "url": "=https://api.wassenger.com{{ $('Wassenger Trigger').item.json.data.media.links.download }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [1880, 100],
      "id": "58f5b3c9-b599-4d05-98df-7fafbea560d8",
      "name": "Download API audio",
      "credentials": {
        "httpHeaderAuth": {
          "id": "[HTTP_AUTH_CREDENTIAL_ID_HIDDEN]",
          "name": "Header Auth account"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "dcf61ad5-2b19-411d-8e84-b9a4cd9bc74c",
              "name": "data.body",
              "value": "=# The user provided the following image and text.\n\n## Image Description:\n{{ $json.content }}\n\n## User Message:\n{{ $('Wassenger Trigger').item.json.data.media.caption }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [2320, 100],
      "id": "a2922296-70bd-4998-9da3-0d35f12ffd47",
      "name": "Image + Text Prompt"
    },
    {
      "parameters": {
        "resource": "image",
        "operation": "analyze",
        "modelId": {
          "__rl": true,
          "value": "chatgpt-4o-latest",
          "mode": "list",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "text": "Analyze the image",
        "inputType": "base64",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [2100, 100],
      "id": "1a9206d8-960d-45e7-8144-c1b8b88fb762",
      "name": "Analyze Image",
      "credentials": {
        "openAiApi": {
          "id": "[OPENAI_CREDENTIAL_ID_HIDDEN]",
          "name": "OpenAi account"
        }
      }
    }
  ],
  "pinData": {},
  "connections": {
    "Wassenger Trigger": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Download Audio",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Audio": {
      "main": [
        [
          {
            "node": "Download Audio1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Audio1": {
      "main": [
        [
          {
            "node": "Audio transcription",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Audio transcription": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wassenger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive": {
      "main": [
        [
          {
            "node": "Wassenger1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wassenger1": {
      "main": [
        [
          {
            "node": "Google Drive1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download image": {
      "main": [
        [
          {
            "node": "Download API audio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download API audio": {
      "main": [
        [
          {
            "node": "Analyze Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Image + Text Prompt": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze Image": {
      "main": [
        [
          {
            "node": "Image + Text Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {},
  "versionId": "[VERSION_ID_HIDDEN]",
  "meta": {
    "templateId": "9000001",
    "templateCredsSetupCompleted": true,
    "instanceId": "[INSTANCE_ID_HIDDEN]"
  },
  "id": "[WORKFLOW_ID_HIDDEN]",
  "tags": []
}

Teste ao vivo 🤖

Pelo aplicativo móvel do WhatsApp

Parabéns! Você acabou de aprender a configurar o workflow WhatsApp Agent Pro usando o recurso Flows integrado do Wassenger, transformando seu WhatsApp em um assistente inteligente movido por IA. Imagine as possibilidades!

Se este guia ajudou você, por que não compartilhar a empolgação? Espalhe o conteúdo compartilhando este artigo com sua rede. Vamos ajudar mais pessoas a descobrir o poder da automação no WhatsApp com a plataforma Wassenger’s integrated Flows. Juntos, podemos transformar a forma como as empresas se conectam aos seus clientes.

Pronto para começar? Visite Wassenger agora e explore o recurso Flows para dar o primeiro passo rumo a uma comunicação com clientes mais inteligente e eficiente. Seu público está esperando!

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger

Get Started Free