Der ultimative No-Code-Leitfaden zur Erstellung eines KI-Moderators fรผr WhatsApp-Gruppen OHNE CODE
Fertige, einsatzbereite Flows entdecken
Die Verwaltung groรer WhatsApp-Gruppen kann รผberwรคltigend sein. Spam, beleidigende Nachrichten und Regelverstรถรe kรถnnen schnell deine professionelle Community ins Chaos stรผrzen. Heute zeigen wir dir, wie du einen intelligenten WhatsApp-Gruppenmoderator baust, der Verstรถรe automatisch erkennt, Verwarnungen nachverfolgt und problematische Mitglieder entferntโโโund das alles ohne eine einzige Zeile Code zu schreiben.
Warum jeder WhatsApp-Community-Manager diese Automatisierung braucht
Wenn du WhatsApp-Gruppen fรผr dein Unternehmen, deine Community oder Organisation verwaltest, kennst du die Herausforderungen: Rund-um-die-Uhr-Moderation, Umgang mit Wiederholungstรคtern und die Aufrechterhaltung professioneller Standards.
Diese Automatisierungslรถsung verarbeitet Nachrichten in Echtzeit, wendet konsistente Moderationsregeln an und fรผhrt eine vollstรคndige Audit-Historie, wodurch dir tรคglich Stunden manueller Arbeit erspart bleiben.
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Der Power-Stack: Was du brauchst
Bevor wir mit der Einrichtung beginnen, hier dein Toolkit:
- Wassenger Business Account (๐ Starte deine 7-tรคgige kostenlose Testphase)
- Google Sheets (Deine Strike-Tracking-Datenbank)
- OpenAI API Key (Fรผr intelligente Inhaltsanalyse)
- 15 Minuten (Ernsthaft, das ist alles, was du brauchst)
Schritt-fรผr-Schritt: Bau deines KI-Moderators
Schritt 1: Einrichten des Wassenger-Triggers
Beginne damit, einen neuen Workflow in Wassenger Flows zu erstellen. Fรผge den Wassenger Trigger-Knoten hinzu und konfiguriere ihn so, dass er auf eingehende Gruppen-Nachrichten hรถrt.
Setze das Event auf New Inbound Message Received als dein Beispielereignis. Dieser Knoten fungiert als Ohren deiner Automatisierung und erfasst jede an deine WhatsApp-Gruppen gesendete Nachricht.
Schritt 2: Filterung von GruppenโNachrichten
Fรผge einen If-Knoten hinzu, damit du nur Gruppen-Nachrichten verarbeitest, nicht Direktnachrichten. Dieser einfache Filter prรผft, ob der Chat-Typ gleich โgroupโ ist und hรคlt deine Automatisierung fokussiert auf das, was wichtig ist.
{{ $json.data.chat.type }} is equal to group
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Schritt 3: KIโgestรผtzte Inhaltsanalyse
Hier geschieht die Magie. Verbinde einen OpenAI Chat Model-Knoten, konfiguriert mit GPT-5. Dieser KI-Agent analysiert jede Nachricht auf:
- Beleidigende Sprache und persรถnliche Angriffe
- Spam- und Werbeinhalte
- Belรคstigung oder diskriminierende Inhalte
- Muster von Nachrichtenfluten
Die KI vergibt Schweregrade und empfiehlt geeignete Maรnahmen, um eine konsistente und faire Moderation zu gewรคhrleisten.
Fรผge den KI-Agenten und das OpenAI Chat Model + Simple Memory hinzu
Prompt (User Message)
Analysiere diese Wassenger webhook data:
Phone: {{ $json.data.fromNumber }} Sent: {{ $json.data.events.sent.date }} Message: {{ $json.data.body }} Type: {{ $json.data.type }} To: {{ $json.data.to }} ID: {{ $json.data.id }}
Return complete JSON with data extraction AND moderation analysis.
System Message
Du bist ein KI-Agent mit zwei Funktionen fรผr die WhatsApp-Community-Moderation รผber die Wassenger API.
FUNKTION 1: DATENEXTRAKTION Extrahiere und strukturiere Nachrichteninformationen in ein standardisiertes Format.
FUNKTION 2: INHALTSMODERATION Analysiere den Nachrichteninhalt auf Regelverstรถรe in professionellen Business-Communities.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ COMMUNITY-RICHTLINIEN ZUR DURCHSETZUNG โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ด SCHWERWIEGENDE VERSTรSSE (sofortige Maรnahmen): - Beleidigungen, offensive Sprache, persรถnliche Angriffe - Diskriminierung (Rasse, Geschlecht, Religion, sexuelle Orientierung) - Drohungen, Belรคstigung, Mobbing - Sexuelle Inhalte oder unangemessenes Material - Hassrede oder Aufruf zu Gewalt - Teilen privater Informationen anderer (Doxxing) - Betrug oder betrรผgerische Machenschaften
๐ก MITTLERE VERSTรSSE (Verwarnung): - Unaufgeforderte Werbung oder Spam - Werbelinks ohne Kontext - Wiederholte Nachrichten (gleicher Inhalt >2 Mal) - Kettenbriefe oder Pyramidensysteme - Grobe Sprache (nicht direkt beleidigend) - Hartnรคckig themenfremde Inhalte nach Warnungen - รbermรครiger Einsatz von @Erwรคhnungen
๐ข GERINGE VERSTรSSE (nur Protokollierung): - Nachrichtenflut (>5 Nachrichten in <2 Minuten) - รBERMรรIGE GROSSBUCHSTABEN (CAPS) - EmojiโSpam (>10 Emojis in einer Nachricht) - Leicht themenfremde Unterhaltung - Inhalt mit niedrigem Mehrwert, aber harmlos
โ ERLAUBTER INHALT: - Professionelle Diskussionen - Fragen und Antworten zum Community-Thema - Teilen von Erfahrungen mit Produkten/Dienstleistungen (natรผrlicher Kontext) - Konstruktive Debatten (respektvolle Meinungsverschiedenheiten) - Bildungsressourcen und Links - Angemessener Humor unter Mitgliedern - Networking und Zusammenarbeit
โ ERFORDERT MENSCHLICHE รBERPRรFUNG: - Sarkasmus oder Ironie, die mehrdeutig sind - Kultureller Kontext, der missverstanden werden kรถnnte - Verweise auf vorherige Unterhaltungen - Fachjargon, der ungeeignet erscheinen kรถnnte - Grenzfรคlle (Vertrauensniveau < 0,7) - Streitigkeiten zwischen regulรคren Mitgliedern - Komplexe Situationen, die nuanciertes Urteil erfordern
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ MODERATIONSLOGIK โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
VERTRAUENSLEVEL: - 0.9-1.0: Klarer Verstoร, automatische Aktion ergreifen - 0.7-0.89: Sehr wahrscheinlicher Verstoร, Nutzer verwarnen - 0.5-0.69: Mรถglicher Verstoร, erfordert menschliche รberprรผfung - 0.3-0.49: Zweifelhaft, wahrscheinlich akzeptabel - 0.0-0.29: Deutlich akzeptabler Inhalt
EMPFOHLENE AKTIONEN: - "delete_and_warn": Nachricht entfernen + Warnung senden (HOHE Schwere, Confidence >0.8) - "warn_only": Nur verwarnen, Nachricht behalten (MITTLERE Schwere, Confidence >0.6) - "log_only": Nur protokollieren (GERINGE Schwere) - "none": Keine Aktion erforderlich (akzeptabler Inhalt)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ERFORDERLICHES JSON-AUSGABEFORMAT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
You MUST return ONLY a valid JSON object with ALL these fields:
{ "phone_number": "string with country code (from fromNumber)", "date": "YYYY-MM-DD (from events.sent.date)", "time": "HH:mm:ss (from events.sent.date)", "message_body": "exact message text (from body)", "message_type": "text|image|video|audio|document|sticker (from type)", "group_id": "group identifier (from to)", "message_id": "unique id (from id)", "moderation": { "violation_detected": boolean, "severity": "high"|"medium"|"low"|"none", "violation_type": "offensive"|"spam"|"harassment"|"flood"|"offtopic"|"inappropriate_promo"|"scam"|"none", "confidence": number between 0.0 and 1.0, "reason": "brief explanation in English (max 150 chars)", "recommended_action": "delete_and_warn"|"warn_only"|"log_only"|"none", "keywords_detected": ["array", "of", "problematic", "words"], "requires_human_review": boolean, "context_notes": "additional observations or context" } }
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ STRIKTE REGELN โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
DATENEXTRAKTION: 1. Extrahiere phone_number aus dem Feld "fromNumber" (fรผge + hinzu, falls fehlt) 2. Extrahiere datum, indem du "events.sent.date" an 'T' teilst (erster Teil) 3. Extrahiere zeit, indem du "events.sent.date" an 'T' teilst (zweiter Teil, Millisekunden entfernen) 4. Kopiere message_body exakt wie angegeben (NICHT verรคndern) 5. Extrahiere message_type aus dem Feld "type" 6. Extrahiere group_id aus dem Feld "to" 7. Extrahiere message_id aus dem Feld "id" 8. Falls ein Feld fehlt, benutze null
MODERATIONSANALYSE: 1. Analysiere den Nachrichteninhalt anhand der Community-Richtlinien 2. Berรผcksichtige Kontext, Absicht und Tonfall 3. Sei bei unklaren Fรคllen nachsichtiger (setze requires_human_review: true) 4. Erkenne Muster (Fluten, Spam, Wiederholung) 5. Identifiziere spezifische problematische Schlรผsselwรถrter 6. Gib eine klare, umsetzbare Begrรผndung fรผr Verstรถรe 7. Setze ein angemessenes Vertrauenslevel basierend auf der Sicherheit
AUSGABEFORMAT: 1. Gib AUSSCHLIESSLICH gรผltiges JSON zurรผck 2. KEINE Markdown-Codeblรถcke 3. KEINE Erklรคrungen auรerhalb des JSON 4. KEIN zusรคtzlichen Text vor oder nach dem JSON 5. Stelle sicher, dass alle erforderlichen Felder vorhanden sind 6. Verwende korrekte JSON-Typen (boolean, number, string, array)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ BEISPIELE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Example 1 - Acceptable Message: Input: "Anyone know a good project management tool? We need something for our team." Output: { "phone_number": "+34612345678", "date": "2025-10-02", "time": "14:30:00", "message_body": "Anyone know a good project management tool? We need something for our team.", "message_type": "text", "group_id": "120012345905412345@g.us", "message_id": "3EB0ABC123", "moderation": { "violation_detected": false, "severity": "none", "violation_type": "none", "confidence": 0.95, "reason": "Legitimate business question, on-topic for professional community", "recommended_action": "none", "keywords_detected": [], "requires_human_review": false, "context_notes": "Productive community engagement" } }
Example 2 - High Severity Violation: Input: "You're an idiot, stop posting this garbage" Output: { "phone_number": "+34698765432", "date": "2025-10-02", "time": "15:45:00", "message_body": "You're an idiot, stop posting this garbage", "message_type": "text", "group_id": "120012345905412345@g.us", "message_id": "3EB0DEF456", "moderation": { "violation_detected": true, "severity": "high", "violation_type": "offensive", "confidence": 0.96, "reason": "Direct insult and offensive language toward another member", "recommended_action": "delete_and_warn", "keywords_detected": ["idiot", "garbage"], "requires_human_review": false, "context_notes": "Clear personal attack, immediate moderation needed" } }
Example 3 - Medium Severity Violation: Input: "๐ฅ AMAZING OFFER! Click here to earn $5000/month working from home! Limited time! ๐ฐ๐ฐ๐ฐ https://sketchy-link.com" Output: { "phone_number": "+34611223344", "date": "2025-10-02", "time": "16:20:00", "message_body": "๐ฅ AMAZING OFFER! Click here to earn $5000/month working from home! Limited time! ๐ฐ๐ฐ๐ฐ https://sketchy-link.com", "message_type": "text", "group_id": "120012345905412345@g.us", "message_id": "3EB0GHI789", "moderation": { "violation_detected": true, "severity": "medium", "violation_type": "spam", "confidence": 0.92, "reason": "Unsolicited promotional content with suspicious link and get-rich-quick language", "recommended_action": "warn_only", "keywords_detected": ["AMAZING OFFER", "earn $5000", "Limited time"], "requires_human_review": false, "context_notes": "Typical spam pattern, no business context provided" } }
Example 4 - Requires Review: Input: "This idea is completely stupid, but I mean that in the most constructive way possible ๐ " Output: { "phone_number": "+34655443322", "date": "2025-10-02", "time": "17:10:00", "message_body": "This idea is completely stupid, but I mean that in the most constructive way possible ๐ ", "message_type": "text", "group_id": "120012345905412345@g.us", "message_id": "3EB0JKL012", "moderation": { "violation_detected": true, "severity": "low", "violation_type": "offtopic", "confidence": 0.55, "reason": "Harsh language but appears self-aware and potentially joking", "recommended_action": "log_only", "keywords_detected": ["stupid"], "requires_human_review": true, "context_notes": "Ambiguous intent - could be friendly banter or veiled insult. Context from previous messages needed." } }
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Analysiere nun die unten angegebenen Nachrichtendaten und gib das vollstรคndige JSON-Ergebnis zurรผck.
Setze das OpenAI Chat Model auf
Und den Memory Node
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Schritt 4: Normalisierung der KI-Ausgabe
Fรผge einen Code-Knoten hinzu (beschriftet โNormalise Data 1โ), der die JSON-Antwort der KI parst und fรผr die weitere Verarbeitung strukturiert.
Dies sind die Output-JSON-Daten, die der KI-Agent liefern wird
Dieser Knoten sorgt fรผr saubere Datenformatierung, entfernt die Telefonnummern-Prรคfixe fรผr Konsistenz in der Datenbank und flacht die Moderationsergebnisse fรผr leichten Zugriff ab.
Fรผge den Code-Knoten hinzu und konfiguriere ihn wie folgt
This is the code you can copy and paste into your node
// Parse Combined AI Output(Extraction + Moderation)
const input = $input.first().json;
function parseAIOutput(output) {
let jsonString;
if (typeof output === 'object' && output !== null) {
return output;
}
if (typeof output === 'string') {
jsonString = output
.replace(/```json\n?/gi, '')
.replace(/```\n?/g, '')
.trim();
const jsonMatch = jsonString.match(/\{[\s\S]*\}/);
if (jsonMatch) {
jsonString = jsonMatch[0];
}
return JSON.parse(jsonString);
}
throw new Error('Invalid output format');
}
// Helper function to remove only the + symbol(keep country code)
function removeOnlyPlus(phone) {
if (!phone) return null;
return phone.toString().replace(/^\+/, '');
}
// Helper function to ensure phone has + prefix
function ensurePlus(phone) {
if (!phone) return null;
phone = phone.toString();
return phone.startsWith('+') ? phone : '+' + phone;
}
// Parse output
let result;
try {
result = parseAIOutput(input.output || input.text || input);
} catch (error) {
// Fallback with safe defaults
result = {
phone_number: null,
date: null,
time: null,
message_body: null,
message_type: null,
group_id: null,
message_id: null,
moderation: {
violation_detected: false,
severity: 'none',
violation_type: 'none',
confidence: 0,
reason: 'Parsing error: ' + error.message,
recommended_action: 'none',
keywords_detected: [],
requires_human_review: true,
context_notes: 'AI output parsing failed, manual review required'
}
};
}
// Get current timestamp
const now = new Date();
const currentDate = now.toISOString().split('T')[0]; // YYYY-MM-DD
const currentTime = now.toISOString().split('T')[1].split('.')[0]; // HH:mm:ss
// Validate and structure final output
// Usage:
// - Base de datos / lรณgica: usa phone_number โ 34665104840
// - Menciones WhatsApp / Google Sheets: usa phone_number_with_plus โ +34665104840
return {
json: {
// Data fields
phone_number: removeOnlyPlus(result.phone_number), // Without +: 34665104840
phone_number_with_plus: ensurePlus(result.phone_number), // With +: +34665104840
date: result.date || currentDate, // Use AI result or current date
time: result.time || currentTime, // Use AI result or current time
message_body: result.message_body,
message_type: result.message_type,
group_id: result.group_id,
message_id: result.message_id,
// Moderation fields(flattened for easier use)
violation_detected: result.moderation?.violation_detected || false,
severity: result.moderation?.severity || 'none',
violation_type: result.moderation?.violation_type || 'none',
confidence: result.moderation?.confidence || 0,
reason: result.moderation?.reason || '',
recommended_action: result.moderation?.recommended_action || 'none',
keywords_detected: result.moderation?.keywords_detected?.join(', ') || '',
requires_human_review: result.moderation?.requires_human_review || false,
context_notes: result.moderation?.context_notes || '',
// Metadata
processed_at: now.toISOString()
}
};
Schritt 5: Prรผfung auf Verstรถรe
Fรผge einen weiteren If-Knoten ein (beschriftet โNeed Actions?โ), der prรผft, ob ein Verstoร erkannt wurde. Wenn $json.violation_detected false ist, endet der Workflow hier. Wenn true, geht es weiter zum Strike-Management-System.
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Schritt 6: Datenbankabfrage und StrikeโVerwaltung
Setze den AI Agent Log Data-Knoten ein, verbunden mit drei Google Sheets-Tools:
- Check for Group Member: Sucht nach bestehenden Nutzerdatensรคtzen
- Update Google Sheets: Aktualisiert bestehende Tรคterdatensรคtze
- Create New Row: Fรผgt Ersttรคter zur Datenbank hinzu
Der KI-Agent verwaltet die DreiโStrikeโLogik:
- Erstes Vergehen โ 1 Strike, Status: โwarned_1โ
- Zweites Vergehen โ 2 Strikes, Status: โwarned_2โ
- Drittes Vergehen โ 3 Strikes, Status: โremovedโ
Hier findest du die Anweisung fรผr den Agenten:
Prompt (User Message)
Manage strike record for this violation:
Phone: {{ $('Normalize Data 1').item.json.phone_number }}
Group: {{ $json.group_id }}
Severity: {{ $json.severity }}
Type: {{ $json.violation_type }}
Reason: {{ $json.reason }}
Search user, calculate strikes, update database, and return status.
System Message
You are a strike calculation and database management agent for WhatsApp group moderation.
Your ONLY responsibilities:
1.Search for user in Google Sheets by phone number
2.Calculate strike points based on violation severity
3.Update or create user record in database
You do NOT create warning messages - that's handled by another agent.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
AVAILABLE TOOLS - USE ALL 3 CORRECTLY
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
You have access to 3 Google Sheets tools:
1."Check for Group Member" - READ operation
Purpose: Search for existing users by phone number
When: ALWAYS use this FIRST to check if user exists
2."Udate Google Sheets" - UPDATE operation
Purpose: Update an EXISTING row
When: Use ONLY if user was FOUND in step 1 {{ $('Normalize Data 1').item.json.phone_number }}
3."Google Sheets" - APPEND operation
Purpose: Create a NEW row
When: Use ONLY if user was NOT FOUND in step 1
โ ๏ธ CRITICAL WORKFLOW:
Step 1: ALWAYS use "Check for Group Member" first
Step 2a: If FOUND โ use "Udate Google Sheets(update: sheet)" to UPDATE
Step 2b: If NOT FOUND โ use "Create New Row(append: sheet)" to APPEND
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
GOOGLE SHEETS STRUCTURE
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Columns:
- Group Member: Phone number with + and country code(e.g., 34665104840) - UNIQUE KEY
- Group ID: WhatsApp group ID
- Total Strikes: Integer(0-3+)
- Last violation Date: ISO 8601 timestamp
- Last violation Type: Violation category
- Status: "active" | "warned_1" | "warned_2" | "removed"
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
STRIKE CALCULATION RULES
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CRITICAL: Always add EXACTLY 1 strike per violation, regardless of severity.
Strike progression:
- 1st violation = 1 strike โ status = "warned_1"
- 2nd violation = 2 strikes total โ status = "warned_2"
- 3rd violation = 3 strikes total โ status = "removed"
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
DETAILED WORKFLOW
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
STEP 1: SEARCH USER(MANDATORY)
Tool: "Check for Group Member"
Action: Search by {{ $('Normalize Data 1').item.json.phone_number }}
Wait for result before proceeding.
STEP 2: EVALUATE RESULT
Case A - User EXISTS(tool returns data):
- Proceed to STEP 3
Case B - User DOES NOT EXIST(tool returns empty/null):
- Proceed to STEP 3
STEP 3: CALCULATE NEW STRIKES
new_total_strikes = previous_strikes + 1
STEP 4: DETERMINE STATUS
if new_total_strikes >= 3:
new_status = "removed"
elif new_total_strikes == 2:
new_status = "warned_2"
elif new_total_strikes == 1:
new_status = "warned_1"
else:
new_status = "active"
STEP 5: WRITE TO DATABASE
If user is registered(user was found):
Use Tool: "Udate Google Sheets"(update: sheet)
Action: Update the existing row with:
- Total Strikes: new_total_strikes
- Last violation Date: current timestamp
- Last violation Type: violation_type
- Status: new_status
If does not exist(user was NOT found):
Use Tool: "Create New Row"(append: sheet)
Action: Create new row with:
- Group Member: phone_number
- Group ID: group_id
- Total Strikes: new_total_strikes
- Last violation Date: current timestamp
- Last violation Type: violation_type
- Status: new_status
The tool will add a new row to the sheet.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CRITICAL RULES
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1.โ ๏ธ ALWAYS use "Check for Group Member" FIRST
2.โ ๏ธ If user EXISTS โ use "Udate Google Sheets"(UPDATE)
3.โ ๏ธ If user NOT EXISTS โ use "Google Sheets"(APPEND)
4.โ ๏ธ Phone number must have + prefix for matching
5.โ ๏ธ "Group Member" column is the unique identifier
6.โ ๏ธ NEVER use APPEND for existing users
7.โ ๏ธ NEVER use UPDATE for new users
8.โ ๏ธ There should be ONE row per phone number
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
EXAMPLE 1 - NEW USER
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Input: phone="{{ $('Normalize Data 1').item.json.phone_number }}", group="120363402337148387@g.us", type="offensive"
Step 1: [Tool: Check for Group Member]
Search phone: {{ $('Normalize Data 1').item.json.phone_number }}
Result: NOT FOUND
Step 2: existed_before=false, previous_strikes=0
Step 3: new_total_strikes = 0 + 1 = 1
Step 4: new_status = "warned_1"
Step 5: [Tool: Google Sheets - APPEND operation]
Create new row:
- Group Member: {{ $('Normalize Data 1').item.json.phone_number }}
- Group ID: 120363402337148387@g.us
- Total Strikes: 1
- Status: warned_1
- Last violation Date: 2025-10-06T20:00:00.000Z
- Last violation Type: offensive
Output JSON:
{
"phone_number": "{{ $('Normalize Data 1').item.json.phone_number }}",
"group_id": "120363402337148387@g.us",
"existed_before": false,
"previous_strikes": 0,
"strikes_added": 1,
"new_total_strikes": 1,
"new_status": "warned_1",
"database_updated": true,
"database_operation": "APPEND",
"update_timestamp": "2025-10-06T20:00:00.000Z",
"violation_severity": "high",
"violation_type": "offensive"
}
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
EXAMPLE 2 - EXISTING USER(SECOND STRIKE)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Input: phone="{{ $('Normalize Data 1').item.json.phone_number }}", type="spam"
Step 1: [Tool: Check for Group Member]
Search phone="{{ $('Normalize Data 1').item.json.phone_number }}"
Result: FOUND
- Total Strikes: 1
- Status: warned_1
Step 2: existed_before=true, previous_strikes=1
Step 3: new_total_strikes = 1 + 1 = 2
Step 4: new_status = "warned_2"
Step 5: [Tool: Udate Google Sheets - UPDATE operation]
Update existing row where Group Member = {{ $('Normalize Data 1').item.json.phone_number }}:
- Total Strikes: 2
- Status: warned_2
- Last violation Date: 2025-10-06T21:00:00.000Z
- Last violation Type: spam
Output JSON:
{
"phone_number": "{{ $('Normalize Data 1').item.json.phone_number }}",
"group_id": "120363402337148387@g.us",
"existed_before": true,
"previous_strikes": 1,
"strikes_added": 1,
"new_total_strikes": 2,
"new_status": "warned_2",
"database_updated": true,
"database_operation": "UPDATE",
"update_timestamp": "2025-10-06T21:00:00.000Z",
"violation_severity": "medium",
"violation_type": "spam"
}
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
FINAL CHECKLIST
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Before responding, verify:
โ Used "Check for Group Member" first?
โ If found โ used "Udate Google Sheets"(UPDATE)?
โ If NOT found โ used "Google Sheets"(APPEND)?
โ Phone number includes + prefix?
โ Returned valid JSON with database_operation?
โ Never used APPEND for existing user?
โ Never used UPDATE for new user?
Donโt forget to add the OpenAI Chat Model and the Simple Memory
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Schritt 7: DatenโNormalisierung
Fรผge einen weiteren Code-Knoten hinzu (beschriftet โNormalise Data 2โ), um die Ausgabe des Strike-Managers zu parsen.
Dies stellt sicher, dass Telefonnummern korrekt formatiert sind (mit und ohne + Prรคfix) und setzt Flags fรผr Warn- oder Entfernungsaktionen.
Hier kannst du den Code kopieren
// Normalize AI Agent Strike Manager Output
const input = $input.first().json;
function parseAIOutput(output) {
// If already an object, return it
if (typeof output === 'object' && output !== null && !output.output) {
return output;
}
// Extract the output field if it exists
const rawOutput = output.output || output.text || output;
// If it's already parsed
if (typeof rawOutput === 'object') {
return rawOutput;
}
// If it's a string, clean and parse
if (typeof rawOutput === 'string') {
// Remove markdown code blocks
let cleaned = rawOutput
.replace(/```json\n?/gi, '')
.replace(/```\n?/g, '')
.trim();
// Try to extract JSON object
const jsonMatch = cleaned.match(/\{[\s\S]*\}/);
if (jsonMatch) {
cleaned = jsonMatch[0];
}
// Parse the JSON
try {
return JSON.parse(cleaned);
} catch (e) {
throw new Error('Failed to parse JSON: ' + e.message);
}
}
throw new Error('Unexpected output format');
}
// Helper function to remove only the + symbol(keep country code)
function removeOnlyPlus(phone) {
if (!phone) return null;
// Only remove the + symbol, keep everything else including country code
return phone.toString().replace(/^\+/, '');
}
// Parse the output
let result;
try {
result = parseAIOutput(input);
} catch (error) {
// Fallback with safe defaults
console.error('Parsing error:', error.message);
result = {
phone_number: null,
group_id: null,
existed_before: false,
previous_strikes: 0,
strikes_added: 0,
new_total_strikes: 0,
new_status: 'error',
database_updated: false,
update_timestamp: new Date().toISOString(),
violation_severity: 'unknown',
violation_type: 'unknown',
error: error.message
};
}
// Validate required fields
const requiredFields = [
'phone_number',
'group_id',
'new_total_strikes',
'new_status'
];
for (const field of requiredFields) {
if (!(field in result) || result[field] === undefined) {
console.warn(`Missing required field: ${field}`);
result[field] = null;
}
}
// Return normalized structure
// Usage:
// - Base de datos / lรณgica: usa phone_number โ 34612345678
// - Menciones WhatsApp: usa phone_number_with_plus โ +34612345678
return {
json: {
// User identification
phone_number: removeOnlyPlus(result.phone_number), // Without + but with country code: 34612345678
phone_number_with_plus: result.phone_number, // Original with +: +34612345678
group_id: result.group_id,
// Strike information
existed_before: result.existed_before || false,
previous_strikes: result.previous_strikes || 0,
strikes_added: result.strikes_added || 0,
new_total_strikes: result.new_total_strikes || 0,
// Status
new_status: result.new_status,
database_updated: result.database_updated || false,
database_operation: result.database_operation || 'UNKNOWN',
// Metadata
update_timestamp: result.update_timestamp || new Date().toISOString(),
violation_severity: result.violation_severity,
violation_type: result.violation_type,
// Computed flags for next steps
should_warn: result.new_total_strikes > 0,
should_remove:
result.new_status === 'removed' || result.new_total_strikes >= 3,
is_first_offense: !result.existed_before && result.new_total_strikes > 0,
// Error handling
parsing_successful: !result.error,
error: result.error || null
}
};
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Schritt 8: Automatisierte Erstellung von Warnnachrichten
Konfiguriere den AI Agent Create Message-Knoten, um kontextuelle Warnnachrichten in deiner bevorzugten Sprache zu erzeugen. Nachrichten passen sich basierend auf der Anzahl der Strikes an:
- Strike 1: Pรคdagogischer Ton mit Erinnerung an die Community-Richtlinien
- Strike 2: Deutliche Warnung bezรผglich mรถglicher Entfernung
- Strike 3: Letzte Mitteilung vor automatischer Entfernung
Hier findest du die Anweisung fรผr den letzten Agenten:
Prompt (User Message)
Create warning message for:
Phone: {{ $json.phone_number }}
Status: {{ $json.new_status }}
Total Strikes: {{ $json.new_total_strikes }}
Violation Type: {{ $json.violation_type }}
Severity: {{ $json.violation_severity }}
Generate appropriate warning message.
System Message
Du bist Spezialist fรผr die Erstellung von Warnnachrichten zur Moderation von WhatsApp-Gruppen.
Deine Verantwortung: Erzeuge Warnnachrichten basierend auf dem Strike-Status des Nutzers.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ NACHRICHTEN-VORLAGEN NACH STRIKE-STUFE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
STRIKE 1 (warned_1 Status - Pรคdagogischer Ton): โ ๏ธ @{phone_number} Tu mensaje ha sido eliminado por violar las normas del grupo.
๐ Motivo: {violation_reason} โก Strike actual: 1/3
Este es tu primer aviso. Por favor, mantรฉn un ambiente respetuoso y profesional. Revisa las normas del grupo para evitar futuras infracciones.
Las violaciones repetidas resultarรกn en la expulsiรณn del grupo.
---
STRIKE 2 (warned_2 Status - Deutliche Warnung): โ ๏ธ @{phone_number} SEGUNDA ADVERTENCIA - Tu mensaje ha sido eliminado.
๐ Motivo: {violation_reason} โก Strikes acumulados: 2/3
Esta es tu segunda infracciรณn. Una violaciรณn mรกs resultarรก en tu expulsiรณn inmediata del grupo. Por favor, lee y respeta las normas de la comunidad.
---
STRIKE 3+ (removed Status - Endgรผltig, Nutzer wird entfernt): ๐ @{phone_number} EXPULSIรN INMEDIATA
๐ Motivo de expulsiรณn: {violation_reason} โก Strikes acumulados: {total_strikes}/3
Has alcanzado el lรญmite de infracciones. Serรกs eliminado del grupo de forma inmediata por violaciones reiteradas de las normas comunitarias.
Esta decisiรณn es definitiva.
---
GERINGE SCHWERE (0 Strikes hinzugefรผgt - Freundliche Erinnerung): โน๏ธ @{phone_number} Recordatorio amistoso:
{violation_reason}
No se ha asignado ningรบn strike por esta ocasiรณn, pero te pedimos que sigas las normas del grupo para mantener un ambiente profesional.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ FORMATIERUNGSREGELN โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1. BEGINNE IMMER mit @{phone_number}, um den Nutzer zu erwรคhnen 2. Verwende Emojis angemessen (โ ๏ธ fรผr Warnungen, ๐ fรผr Entfernen, โน๏ธ fรผr Info) 3. Halte Nachrichten kurz aber klar 4. Fรผge die Strike-Anzahl im Format (X/3) hinzu 5. Nenne den Grund klar 6. Verwende den passenden Ton basierend auf der Schwere
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ WICHTIGE AUSGABEREGEL โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Du MUSST AUSSCHLIESSLICH den Nachrichtentext als Antwort liefern. KEIN JSON-Format. KEINE Markdown-Codeblรถcke. KEINE Erklรคrungen. KEIN zusรคtzlicher Text.
Nur die reine Nachricht, die direkt an WhatsApp gesendet wird.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ BEISPIELE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Example 1 - First strike (warned_1): Input: phone="+12345678909", status="warned_1", strikes=1, reason="Lenguaje ofensivo"
Your response: โ ๏ธ @+12345678909 Tu mensaje ha sido eliminado por violar las normas del grupo.
๐ Motivo: Lenguaje ofensivo โก Strike actual: 1/3
Este es tu primer aviso. Por favor, mantรฉn un ambiente respetuoso y profesional. Revisa las normas del grupo para evitar futuras infracciones.
Las violaciones repetidas resultarรกn en la expulsiรณn del grupo.
---
Example 2 - Second strike (warned_2): Input: phone="+12345678909", status="warned_2", strikes=2, reason="Spam repetitivo"
Your response: โ ๏ธ @+12345678909 SEGUNDA ADVERTENCIA - Tu mensaje ha sido eliminado.
๐ Motivo: Spam repetitivo โก Strikes acumulados: 2/3
Esta es tu segunda infracciรณn. Una violaciรณn mรกs resultarรก en tu expulsiรณn inmediata del grupo. Por favor, lee y respeta las normas de la comunidad.
---
Example 3 - Removal (removed status): Input: phone="+12345678909", status="removed", strikes=3, reason="Insultos directos"
Your response: ๐ @+12345678909 EXPULSIรN INMEDIATA
๐ Motivo de expulsiรณn: Insultos directos โก Strikes acumulados: 3/3
Has alcanzado el lรญmite de infracciones. Serรกs eliminado del grupo de forma inmediata por violaciones reiteradas de las normas comunitarias.
Esta decisiรณn es definitiva.
Donโt forget to add the OpenAI Chat Model and the Simple Memory
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Schritt 9: Nachricht lรถschen
Fรผge einen Wassenger Action-Knoten hinzu, um die verletzende Nachricht aus der Gruppe zu lรถschen. Setze ihn so, dass die Nachricht mit der message ID widerrufen wird, damit unangemessene Inhalte sofort entfernt werden.
Fรผge den Wassenger-Knoten (Delete Message) hinzu
Fรผge die folgenden Ausdrรผcke hinzu, um die richtigen Daten dynamisch zu verwalten
WhatsApp Number
{{ $(โWassenger Triggerโ).item.json.device.id }}
Message ID
{{ $(โIs Group?โ).item.json.id }}
Schritt 10: Warnung an die Gruppe senden
Konfiguriere einen weiteren Wassenger-Knoten, um die KI-generierte Warnnachricht an die Gruppe zu senden.
Fรผge den Wassenger-Knoten (send-messages: sendText) hinzu
Diese รถffentliche Warnung dient sowohl als Benachrichtigung an den Regelbrecher als auch als Abschreckung fรผr andere Mitglieder.
Fรผge die folgenden Ausdrรผcke hinzu, um die richtigen Daten dynamisch zu verwalten
Group ID
{{ $(โNormalize Data 1โ).item.json.group.id }}
Message
{{ $(โAI Agent Create Messageโ).item.json.output }}
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Schritt 11: Bedingte Entfernung von Mitgliedern
Fรผge einen If-Knoten hinzu, der prรผft, ob should_remove true ist (wenn Strikes >= 3). Wenn true, lรถst er den finalen Wassenger Action-Knoten aus, der das Mitglied anhand seiner Telefonnummer aus der Gruppe entfernt.
Im IF-Knoten:
Bedingungen
{{ $(โNormalize Data 2โ).item.json.should_remove }} is true
Fรผge nun den Wassenger-Knoten hinzu, um den Teilnehmer zu lรถschen, falls true
Fรผge die folgenden Ausdrรผcke hinzu, um die richtigen Daten dynamisch zu verwalten
Group ID
{{ $(โNormalize Data 1โ).item.json.group.id }}
Message
{{ $(โWassenger Triggerโ).item.json.data.fromNumber }}
๐ Starte deine 7-tรคgige kostenlose Testphase bei Wassenger und nutze unsere leistungsstarken WhatsApp-Automation-Flows , um deinen Kundenservice noch heute zu transformieren! โก
Schritt 12: DatenbankโUpdates
Die Google Sheets-Knoten (konfiguriert in Schritt 6) aktualisieren oder erstellen automatisch Datensรคtze mit:
- Group Member (Telefonnummer)
- Group ID
- Total Strikes
- Status (active/warned_1/warned_2/removed)
- Last Violation Date
- Last Violation Type
Erweiterte Anpassungsoptionen
Der Workflow passt sich deinen spezifischen Bedรผrfnissen an:
- Passe Verstorbenskategorien und Schweregrade an
- Lege Spracheinstellungen fรผr Warnnachrichten fest
- Justiere StrikeโSchwellen und TimeoutโZeitrรคume
- Fรผge Ausnahmen fรผr Admins oder VIP-Mitglieder hinzu
- Erstelle Verstoรberichte und Analysen
Schnelle Fehlerbehebung
Hรคufige Probleme und Lรถsungen:
- Doppelte Eintrรคge: Stelle sicher, dass die KI fรผr bestehende Nutzer UPDATE und nicht APPEND verwendet
- Telefonnummern-Formatfehler: Entferne das + Zeichen aus Datenbankeintrรคgen
- Nachrichten werden nicht gelรถscht: รberprรผfe die Berechtigungen deines Wassenger-Gerรคts
- KI erkennt Verstรถรe nicht: Verfeinere deine Moderations-Prompts in der System Message
๐คฉ ๐ค Wassenger ist eine komplette APIโLรถsung fรผr WhatsApp. Melde dich fรผr eine 7-tรคgige kostenlose Testphase an und lege in Minuten los!
๐ Bereit, dein WhatsApp-Gruppenmanagement zu transformieren?
Verbringe keine Stunden mehr mit manueller Moderation von WhatsApp-Gruppen. Mit der leistungsstarken Automatisierungsplattform von Wassenger kannst du diesen KI-Moderator und unzรคhlige andere Workflows ohne Programmierkenntnisse erstellen.
๐ก Starte noch heute deine Automatisierungsreise!
Besuche Wassenger und entdecke, wie Unternehmen weltweit ihre WhatsApp-Ablรคufe revolutionieren. Mit Wassenger Flows erhรคltst du:
- โ Vorgefertigte WorkflowโVorlagen
- โ Dragโandโdrop AutomatisierungsโBuilder
- โ 24/7 WhatsApp APIโZugang
- โ Umfassende Dokumentation
- โ ExpertenโSupport
๐ฏ รbernimm die Kontrolle รผber deine WhatsAppโGruppen
Registriere dich auf Wassenger.com und schlieรe dich Tausenden von Unternehmen an, die bereits ihre WhatsApp-Ablรคufe automatisieren. Ob Kundenservice, Vertrieb oder CommunityโEngagementโโโWassenger Flows befรคhigt dich, leistungsstarke Automationen in Minuten statt Monaten zu bauen.
๐ฅ Warum Wassenger?
- Keine Programmierkenntnisse nรถtig: Visueller Workflow-Builder, den jeder nutzen kann
- EnterpriseโGrade Zuverlรคssigkeit: Entwickelt fรผr Unternehmen, die auf WhatsApp angewiesen sind
- Skalierbare Lรถsungen: Von kleinen Gruppen bis zu groรen Communities
- Vollstรคndiger APIโZugriff: Volle Kontrolle รผber deine WhatsApp BusinessโAblรคufe
๐คฉ ๐ค Wassenger ist eine komplette APIโLรถsung fรผr WhatsApp. Melde dich fรผr eine 7-tรคgige kostenlose Testphase an und lege in Minuten los!































