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:
- Recuperar a mensagem de voz da API do Wassenger
- Criar o arquivo de download através de uma requisição HTTP
- Converter a mensagem de voz usando a IA
- 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.bodycomo 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.bodycomo 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
- 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)
- 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
- Em File Name, adicionaremos a seguinte expressão:
{{ $json.fineName }} - Defina o Parent Drive como My Drive
- 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!






















































