Skip to content
Back to Blog

Wie man einen WhatsApp-Gruppenmoderator mit KI erstellt

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:

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.

how to build a whatsapp group moderator withow to build a whatsapp group moderator wit

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.

how to build a whatsapp group moderator withow to build a whatsapp group moderator wit

{{ $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.

how to build a whatsapp group moderator wit

Fรผge den KI-Agenten und das OpenAI Chat Model + Simple Memory hinzu

how to build a whatsapp group moderator wit

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

how to build a whatsapp group moderator wit

Und den Memory Node

how to build a whatsapp group moderator wit

๐Ÿ‘‰ 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.

how to build a whatsapp group moderator wit

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.

how to build a whatsapp group moderator wit

Fรผge den Code-Knoten hinzu und konfiguriere ihn wie folgt

how to build a whatsapp group moderator wit

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.

how to build a whatsapp group moderator withow to build a whatsapp group moderator wit

๐Ÿ‘‰ 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:

  1. Check for Group Member: Sucht nach bestehenden Nutzerdatensรคtzen
  2. Update Google Sheets: Aktualisiert bestehende Tรคterdatensรคtze
  3. Create New Row: Fรผgt Ersttรคter zur Datenbank hinzu

how to build a whatsapp group moderator wit

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:

how to build a whatsapp group moderator wit

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.

how to build a whatsapp group moderator wit

Dies stellt sicher, dass Telefonnummern korrekt formatiert sind (mit und ohne + Prรคfix) und setzt Flags fรผr Warn- oder Entfernungsaktionen.

how to build a whatsapp group moderator wit

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:

how to build a whatsapp group moderator wit

  • 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:

how to build a whatsapp group moderator wit

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.

how to build a whatsapp group moderator wit

Fรผge den Wassenger-Knoten (Delete Message) hinzu

how to build a whatsapp group moderator wit

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.

how to build a whatsapp group moderator wit

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.

how to build a whatsapp group moderator wit

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.

how to build a whatsapp group moderator wit

Im IF-Knoten:

how to build a whatsapp group moderator wit

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

how to build a whatsapp group moderator wit

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!

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger.

Browse more

Tutorials, guides and case studies on running WhatsApp at team scale.

Ready for the official WhatsApp Business API?See what Meta charges โ€” and keep your current number.
WhatsApp API pricing