Entwickle einen für dein Unternehmen angepassten WhatsApp-AI-Agenten, der Kundenkommunikation per Text, Sprache und Bildern interpretieren und sowohl schriftlich als auch gesprochen antworten kann
Mit dieser Anleitung kannst du innerhalb von Minuten einen voll funktionsfähigen AI-Assistenten mit Multimedia-Fähigkeiten auf deinem System oder in deiner Cloud-Infrastruktur bereitstellen. Dieser Assistent fungiert als digitaler Kundenservice-Mitarbeiter, der auf spezifische Geschäftsanforderungen zugeschnitten ist.
Entdecke Flows! Die neue Wassenger-Funktion zur Automatisierung deiner Nachrichten
Inhaltsverzeichnis
- Einführung
- Einrichtung
- Personalisierung
- Implementierung der Multimedia-Verarbeitung: Text
- Implementierung der Multimedia-Verarbeitung: Sprache
- Implementierung der Multimedia-Verarbeitung: Bilder
- RAG (Retrieval-Augmented Generation) Integration
- Start und Test
🤩 🤖 Wassenger bietet eine umfassende API-Plattform für WhatsApp. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
In dieser Anleitung erfährst du, wie du einen ChatGPT-gesteuerten WhatsApp-Assistenten erstellst, der:
- Eingehende schriftliche Nachrichten kontextgerecht und präzise beantwortet
- Sprachaufnahmen transkribiert und analysiert, um passende Antworten zu liefern
- Bilder analysiert und daraus Informationen extrahiert, um relevante Antworten zu erzeugen
- Kombinationen dieser Eingabeformate in nahtlosen Unterhaltungen verwaltet
Wir nutzen Wassenger’s integrierte Flows-Funktion (betrieben von n8n), die Wassenger API zur WhatsApp-Anbindung und die OpenAI API (ChatGPT), um unserem Assistenten fortgeschrittene Natural Language Processing- und Multimedia-Verständnisfähigkeiten zu geben.
Nach Abschluss dieser Anleitung verfügst du über einen voll funktionsfähigen WhatsApp-Assistenten, der Kundenanfragen unabhängig vom Präsentationsformat versteht und beantwortet, wodurch die Nutzererfahrung und die Effektivität des Kundenservices deutlich verbessert werden.
🤩 🤖 Wassenger bietet eine umfassende API-Plattform für WhatsApp mit integrierter Flows (Workflow-Automatisierungs-)Funktionalität. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
Lass uns mit der Einrichtung unseres Multimedia-WhatsApp-Assistenten über die integrierte Flows-Funktion von Wassenger beginnen.
Voraussetzungen
- Ein Wassenger Konto mit Zugang zur Flows-Funktion: Registriere dich kostenlos, um API-Zugriff und Workflow-Automatisierungsfunktionen zu erhalten
- WhatsApp-Nummer: Mindestens eine WhatsApp-Nummer, die mit Wassenger verbunden ist
- OpenAI API-Zugangsdaten: verfügbar hier
- Ein Google-Konto
Wichtig! 💬 Wassenger’s Flows-Funktion bietet eingebaute Workflow-Automatisierung basierend auf n8n-Technologie — es ist kein Self-Hosting oder separate n8n-Platform-Einrichtung erforderlich. Alles läuft direkt innerhalb der Wassenger-Plattform!
Nun bauen wir unseren neuen AI-Assistenten! 🤖
Einrichtung
1. Zugriff auf die Wassenger Flows-Funktion
Navigiere in deinem Wassenger-Dashboard zum Bereich ‘Flows’, um die eingebaute Workflow-Automatisierungsfunktion (betrieben von n8n) aufzurufen.
🤩 🤖 Wassenger bietet eine umfassende API-Plattform für WhatsApp mit integrierter Flows (Workflow-Automatisierungs-)Funktionalität. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
2. Richte den Wassenger-Trigger ein
Da wir uns jetzt in der Wassenger Flows-Schnittstelle befinden, richten wir den Trigger wie folgt ein:
- Wähle ‘Add first step’
- Suche nach ‘Wassenger Trigger’ (bereits in der Plattform integriert)
- Wähle den Trigger ‘On new inbound message received’
- Ein Fenster ähnlich diesem erscheint
Da du innerhalb der Wassenger-Plattform arbeitest, sind die API-Zugangsdaten automatisch für dein Konto konfiguriert.
3. Konfiguriere deinen Flow-Trigger
Da du die integrierte Flows-Funktion von Wassenger nutzt, wird die Webhook-Konfiguration automatisch innerhalb der Plattform gehandhabt. Vorgehen:
- Wähle die WhatsApp-Nummer, die du auf eingehende Nachrichten überwachen möchtest
- Wähle die Nachrichtentypen, die du verarbeiten möchtest (Text, Audio, Bilder)
- Das System leitet die Nachrichten automatisch an deinen Flow weiter
🤩 🤖 Wassenger bietet eine umfassende API-Plattform für WhatsApp mit integrierter Flows (Workflow-Automatisierungs-)Funktionalität. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
4. Baue ein Modul, das Text, Sprache und Bilder erkennt
Wähle zuerst ‘Test step’, um eingehende Nachrichten-Daten an deinen Wassenger-Flow zur Verarbeitung zu erhalten:
Nachdem du eine Nachricht an deine verbundene WhatsApp-Nummer gesendet hast, siehst du etwas Ähnliches wie hier:
Jetzt können wir mit den abgerufenen Daten arbeiten.
Erstelle ein ‘Switch’-Modul innerhalb der Flows-Oberfläche
Lege dann drei mögliche Szenarien fest und füge einen Ausdruck hinzu, der die verschiedenen Nachrichtentypen sortiert:
- Text:
{{ $json.data.type }} - Voice:
{{ $json.data.media.type }} - Image:
{{ $json.data.media.type }}
5. Füge den AI-Agenten hinzu
Nun fügen wir das AI-Agenten-Modul hinzu, das uns hilft, alle eingehenden Nachrichten zu analysieren und ausgehende Antworten zu erstellen.
Klicke auf den unteren Knoten des ‘Switch’-Moduls
Das folgende Fenster erscheint.
Konfiguriere es wie folgt:
- Source for Prompt (User Message): DEFINE BELOW
- Prompt (User Message):
{{ $json.data.body }}
🤩 🤖 Wassenger bietet eine umfassende API-Plattform für WhatsApp mit integrierter Flows (Workflow-Automatisierungs-)Funktionalität. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
6. Verbinde das OpenAI-Chatmodell
Ein Fenster wie dieses erscheint, und du fügst deine OpenAI-Zugangsdaten ein
Erstelle ein OpenAI-Konto und finde deine Zugangsdaten hier
Füge diese anschließend deinem Wassenger-Flow hinzu
Nun fügen wir eine Systemnachricht hinzu, um dem AI-Modell zusätzliche Anweisungen zu geben, einschließlich wer mit dem AI spricht (Kunde) und der genauen Gesprächszeit:
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 bietet eine umfassende API-Plattform für WhatsApp. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
7. Füge den Memory-Node hinzu
Der Memory-Node ermöglicht es dem AI-Modell, sich an vorherige Interaktionen zu erinnern und darauf zu verweisen. Es sind keine Zugangsdaten erforderlich, da die Speicherung innerhalb von n8n erfolgt.
- Erhöhe das ‘Context Window Length’ auf 20
- Definiere die Session ID wie unten angegeben
- Ändere das Feld auf Expression und füge hinzu:
{{ $(‘Switch’) }}
8. Baue den Sprachnachrichten-Flow
Als Nächstes richten wir ein, wie unser Bot Sprachnachrichten analysiert und verarbeitet, die unsere Kunden senden. Los geht’s!
Wie in der Abbildung unten gezeigt, umfasst der Prozess 4 Hauptschritte:
- Die Sprachnachricht von der Wassenger API abrufen
- Die Datei per HTTP-Anfrage herunterladen
- Die Sprachnachricht mit AI transkribieren/konvertieren
- Den konvertierten Text an unseren AI-Agenten senden
Lass uns die Sprachnachricht von Wassenger abrufen.
Suche nach Wassenger > Chat Files Download File
Konfiguriere Folgendes:
- Füge dein Wassenger-Konto hinzu
- Wähle Chat Files als Resource
- Operation: Get File Details
- WhatsApp-Nummer:
{{ $json.device.id }} - File ID:
{{ $json.data.media.id }}
Als Nächstes fügen wir ein HTTP-Modul hinzu, um die Datei abzurufen
Konfiguriere das Modul wie folgt:
- 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: Verwende deine Wassenger API-Zugangsdaten (in Flows automatisch verfügbar)
Dann fügen wir hinzu:
- Name: Token
- Value: Dein Wassenger API-Token (direkt innerhalb der Flows-Plattform zugänglich)
🤩 🤖 Wassenger bietet eine umfassende API-Plattform für WhatsApp. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
Nun fügen wir das OpenAI-Modul hinzu, das die Sprachnachricht konvertiert
Suche nach: New module > Advanced AI > OpenAI > Transcribe a recording
Konfiguriere dann das Modul:
Abschließend senden wir die konvertierte Sprachnachricht mit dem SET-Modul an unseren AI-Agenten
Und konfiguriere es:
- Mode: Manual Mapping
- Fields to Set:
data.bodyals String und{{ $json.text }}
Jetzt ist unsere Sprachkonvertierung bereit!
9. Bilder verarbeiten
Damit unser BOT Bilder analysieren kann, führen wir einen ähnlichen Prozess wie bei Sprachnachrichten aus. Schauen wir uns das an.
Vom Switch-Modul aus füge ein neues Wassenger Download Media-Modul hinzu
Konfiguriere Folgendes:
- Füge dein Wassenger-Konto hinzu
- Wähle Chat Files als Resource
- Operation: Get File Details
- WhatsApp-Nummer:
{{ $json.device.id }} - File ID:
{{ $json.data.media.id }}
Als Nächstes rufen wir das Bild mit dem HTTP-Modul ab, wie wir es zuvor bei Sprachnachrichten getan haben
- 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: Verwende deine Wassenger API-Zugangsdaten (in Flows automatisch verfügbar)
🤩 🤖 Wassenger bietet eine umfassende API-Plattform für WhatsApp. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
Jetzt fügen wir das OpenAI-Modul hinzu, das das Bild verarbeitet
Suche nach: New module > Advanced AI > OpenAI > Analyze image
Und konfiguriere das Modul wie folgt:
- Credential to connect with: OpenAI account (Setze die zuvor genannten Zugangsdaten)
- Resource: Image
- Operation: Analyse Image
- Model: CHATGPT-4O-LATEST
- Text input: Analyse the image
- Input Type: Binary File(s)
- Input Data Field Name: data
Zum Schluss füge das SET-Modul hinzu, um alle Informationen an unseren AI-Agenten zu übergeben
Und konfiguriere es:
- Mode: Manual Mapping
- Fields to Set:
data.bodyals String und
# The user submitted the following image and text.
## Image Description:
{{ $json.content }}
Perfekt! Wir haben nun drei mögliche Szenarien, die unser Bot verarbeiten kann: Text, Sprache und Bilder.
Nun legen wir fest, wie unser Bot je nach empfangenen Nachrichtentyp antworten soll
10. Erstelle die Sprachantwort
Vom AI Agent-Modul aus fügen wir ein neues Modul namens ‘IF’ hinzu. Dieses hilft uns, unsere Antwort je nach empfangenem Nachrichtentyp anzupassen.
Für die Konfiguration legen wir einen Wert von ‘true’ oder ‘false’ fest, abhängig davon, ob die empfangene Nachricht eine Sprachdatei oder ein Bild/Text ist. Für Sprachnachrichten antworten wir mit einer anderen Sprachantwort; diese Konfiguration kann jedoch nach Wunsch angepasst werden. Die Möglichkeiten sind unbegrenzt!
Bedingung: {{ $(‘Switch’).item.json.data.media.type }} ist gleich audio
Nun erstellen wir den Sprachantwort-Flow, beginnend mit dem Hinzufügen des OpenAI-Moduls zur Audioproduktion:
Add nodes > Advanced AI > OpenAI > Generate Audio
Und konfiguriere es so:
- Credential to connect with: OpenAI account (Setze die zuvor genannten Zugangsdaten)
- Resource: Audio
- Operation: Generate Audio
- Model: TTS-1
- Text input (Expression):
{{ $('AI Agent').item.json.output }} - Voice: Wähle deine Präferenz
Damit WhatsApp unser generiertes Audio erkennt, müssen wir es von audio/mp3 in audio/mpeg konvertieren — mit einem einfachen Skript, das unten bereitgestellt wird:
Erstelle ein neues Code-Modul
- Konfiguriere es mit folgendem JavaScript-Code:
// 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();
Sobald unser Audio in das richtige Format für den Versand über Wassenger konvertiert ist, müssen wir es lokal oder in der Cloud speichern. Hier verwenden wir die Cloud, da sie uns eine öffentliche URL bereitstellt, über die die Datei über die Wassenger API gesendet werden kann. In diesem Tutorial nutzen wir Google Drive, du kannst jedoch jede Plattform verwenden, die für dich am besten passt.
Erstelle ein neues Modul für Google Drive (Upload File)
- Konfiguriere alle Google-Zugangsdaten innerhalb von Wassenger Flows
Wenn du nicht weißt, wie du dein Google-Konto mit Wassenger Flows verbindest, sieh dir dieses Tutorial an
- Im File Name fügen wir folgenden Ausdruck hinzu:
{{ $json.fineName }} - Setze das Parent Drive auf My Drive
- Für den Parent Folder müssen wir einen neuen Ordner in unserem Drive erstellen
Mache diesen Ordner anschließend öffentlich, damit er von Wassenger Flows zugänglich ist. Wenn du den Ordner nicht öffentlich machst, wird der API-Aufruf mit "unauthorised access" fehlschlagen.
🤩 🤖 Wassenger bietet eine umfassende API-Plattform für WhatsApp. Registriere dich für eine 7-tägige kostenlose Testversion und starte sofort!
Jetzt erstellen wir ein Send Multimedia Message-Modul mit Wassenger, um das neu generierte Audio über die von Google Drive bereitgestellte URL zu senden
Konfiguriere das Modul:
- Definiere die Nummer, von der du die Nachricht senden möchtest
- Setze die Zielnummer, die wir aus den zuvor konfigurierten Webhook-Daten erhalten haben:
{{ $(‘Switch’).item.json.data.fromNumber }} - Setze die File-URL:
{{ $json.webContentLink }}
Abschließend entfernen wir unsere Datei aus Google Drive, um zu vermeiden, dass sich zu viele Dateien in unserer Cloud ansammeln und der Speicher knapp wird. Dieser Schritt ist optional. Wenn du alle generierten Audiodateien behalten möchtest, kannst du das tun — du musst dann jedoch eine Variable zum Benennen der Audio-Dateien hinzufügen, um Fehler zu vermeiden.
Setze die zu löschende File-ID auf: {{ $(‘Google Drive’).item.json.id }}
🤩 🤖 Wassenger ist eine vollständige API-Lösung für WhatsApp. Melde dich für eine 7-tägige kostenlose Testversion an und starte in Minuten!
11. Erstelle die Textantwort
Jetzt, wo wir unseren Sprachgenerator haben, erstellen wir unseren Textnachrichten-Generator, der vom IF-Modul ausgeführt wird und Fälle behandelt, in denen Benutzer uns Bilder senden (der Bot analysiert die Nachricht mit Bild und gibt Text zurück) oder wenn sie uns einfache Textnachrichten senden.
Vom IF-Modul aus füge ein neues Modul hinzu
Und konfiguriere das Modul:
- Credentials to connect with: Wassenger Key account
- Resource: Send Message
- Operation: Send Text Message
- WhatsApp number: Deine verbundene Nummer
- Target: Phone
- Target:
{{ $(Wassenger Trigger’).item.json.data.fromNumber }}` - Message:
{{ $json.output }}
Und da ist es! Unser Bot ist vollständig konfiguriert! Jetzt können wir den Workflow testen, um zu bestätigen, dass alles korrekt funktioniert.
Hol dir den vollständigen Workflow hier!
{
"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": []
}
Live-Test 🤖
Vom WhatsApp-Mobilgerät aus
Herzlichen Glückwunsch! Du hast gerade gelernt, wie man den WhatsApp Agent Pro-Workflow mit der integrierten Flows-Funktion von Wassenger konfiguriert und WhatsApp in einen intelligenten, AI-gestützten Assistenten verwandelt. Stell dir die Möglichkeiten vor!
Wenn dir diese Anleitung geholfen hat, teile doch die Freude — verbreite diesen Artikel in deinem Netzwerk. Lass uns mehr Menschen die Möglichkeiten der WhatsApp-Automatisierung mit der Wassenger-integrierten Flows-Plattform entdecken helfen. Gemeinsam können wir verändern, wie Unternehmen mit ihren Kunden kommunizieren.
Bereit loszulegen? Besuche jetzt Wassenger und erkunde die Flows-Funktion, um den ersten Schritt zu intelligenterer, effizienterer Kundenkommunikation zu machen. Dein Publikum wartet!






















































