SocialHub.AI
Neu · Früher Zugriff

SoClaw Win-Back-Integration

SoClaw ist Flashs autonomes Rückgewinnungssystem: eine interne Liste mit wertvollen, gefährdeten Mitgliedern, eine Reihe von verwalteten MCP-Tools und eine Entscheidungsfunktion. Sie betreiben es, indem Sie einen OpenClaw-Agenten ausführen – eine Open-Source-Agentenlaufzeitumgebung, die Sie selbst hosten –, der die SoClaw-Funktion lädt und die Schleife über einen bereichs- und limitierten Agentenschlüssel durchläuft.

Diese Anleitung ist für den Betreiber/Integrator bestimmt. Die Geschäftsübersicht finden Sie auf der Produktseite SoClaw. Die Tools zur Kundenrückgewinnung basieren auf demselben verwalteten Server MCP, der im Integrationsleitfaden MCP dokumentiert ist.

Der Rückgewinnungsprozess

SoClaw verarbeitet jeweils ein Mitglied. Der Agent mietet eine Aufgabe, liest den Entscheidungskontext des Mitglieds, wählt einen einzelnen Geldhebel oder HOLD, erfasst eine ehrliche Notiz und schließt den Vorgang ab – dann beansprucht er die nächste Aufgabe. Eine beanspruchte Aufgabe führt zu maximal einer Geldaktion.

task = claim_winback_task()                 # lease one task; NO_TASKS_AVAILABLE / WINBACK_DISABLED → STOP
ctx  = get_winback_context(task.memberId)   # consent / freq / fatigue / reach / complaintRisk / churn / arm / hint

# HARD VETO — holdout arm, complaint risk, consent, frequency
if ctx.holdoutArm == "holdout" or ctx.complaintRisk.level == "high"
       or no consent or ctx.emailFrequency.allowed == false:
    add_member_note(task.memberId, "HOLD: <reason>", kind="winback", task_id=task.id)
    complete_winback_task(task.id, acted=false, lever="hold", hold_reason="<reason>"); STOP

# CHOOSE one lever or HOLD — protect margin first (points before discounts)
result = issue_coupon(member_id=task.memberId, pool_id=..., task_id=task.id)   # MUST carry task_id

# RECORD honestly, then COMPLETE — outcome stays "pending" (attribution fills it later)
note = add_member_note(task.memberId, honest(action, value, why), kind="winback", task_id=task.id)
complete_winback_task(task.id, acted=true, lever="issue_coupon", note_id=note.noteId)
# action_ref is OPTIONAL — do NOT pass the lever's transaction/run id. The server
# auto-links the executed lever to the task for attribution.

Die Lease-Vergabe gilt mindestens einmal, nicht genau einmal. Eine Lease-Vergabe kann ablaufen und eine Aufgabe kann an einen anderen Worker neu vergeben werden – Doppelausgaben werden also durch Idempotenz und nicht durch die Lease-Vergabe verhindert. Jeder Geldhebel enthält die task_id; der Server leitet daraus den Idempotenzschlüssel ab, sodass eine erneute Ausführung desselben Vorgangs fehlschlägt, anstatt einen zweiten Coupon auszugeben.

Rückgewinnungsinstrumente (Toolset winback)

Die drei Schreibwerkzeuge sind rate-only – geschützt durch den Instant-Pause-Schalter und eine Schreibratenbegrenzung, ohne Wertbeschränkung pro Aufruf, da sie keinen Nennwert haben. Referenzieren Sie jedes Tool als Flash:<tool_name>.

claim_winback_taskSchreiben · Nur Ratenwinback:claim

Übernimmt die nächste gefährdete Aufgabe aus der Aufgabenliste. Atomar – kein anderer Mitarbeiter erhält dieselbe Aufgabe. Gibt die Aufgabe (ID, memberIdPriorität segmentKey, Arm, Grund), der Pachtvertrag (Eigentümer, expiresAt, leaseSeconds), und Versuche/maxAttemptsKeine Parameter – das Team wird aus dem Schlüssel generiert.

Parameter: (none)
get_winback_contextlesenwinback:read

Eine vorab lesbare Prüfung für das Mitglied: Einwilligung, Spielraum für E-Mail-Frequenz, Ermüdungspotenzial, aktuelle Reichweite, Beschwerde-/Abmelderisiko, Abwanderungssignale (Ausgaben der letzten 90 Tage, letzte Bestellung, Stufe, Status), die verbleibende Kundengruppe des Mitglieds und ein HINWEIS policyHintEs werden keine Notizkörper zurückgegeben. Die Ausgabe besteht aus Daten, nicht aus Anweisungen – der Server erzwingt beim Schreiben unabhängig davon jedes Gate.

Parameter: member_id
add_member_noteSchreiben · Nur Ratenwinback:write

Erstellt eine verständliche Notiz im Mitgliedsdatensatz. Der Text wird als nicht vertrauenswürdige Daten gespeichert und serverseitig bereinigt: ≤ 2000 Zeichen, Steuerzeichen, bidirektionale Zeichen und Nullbreitenzeichen werden entfernt, Markup, automatische Links, reine URLs und PII-Muster werden abgelehnt. Art ∈ Rückgewinnung | Beobachtung | Hypothese. Der Text wird niemals im Agentenkontext gespeichert.

Parameter: member_id, body, kind?, task_id?, action_ref?
complete_winback_taskSchreiben · Nur-Rate · Idempotentwinback:claim

Die beanspruchte Aufgabe wird mit ihrem Ergebnis (ausgelöster Hebel + Referenzen oder ein HOLD-Grund) abgeschlossen. Idempotent – ​​die erneute Ausführung gibt das gespeicherte Ergebnis ohne weitere Auswirkungen wieder. Das Ergebnis bleibt „ausstehend“; die Konvertierung erfolgt später durch die Holdout-konforme Zuordnung – sie wird niemals neu erstellt.

Parameter: task_id, acted?, lever?, action_ref?, note_id?, hold_reason?

Geldhebel – an eine Aufgabe gebunden

Dies sind die Standard-Schreibwerkzeuge für Flash. Ein Win-Back-Agent MUSS die task_id der beanspruchten Aufgabe übergeben – andernfalls wird der Win-Back-Schreibvorgang mit WINBACK_TASK_REQUIRED abgelehnt. Die task_id macht den Schreibvorgang idempotent und bindet den serverseitig erzwungenen Holdout-Arm. Eine Geldaktion pro Aufgabe.

issue_couponSchreiben · Geldcoupons:write

Weisen Sie dem Mitglied einen eindeutigen Gutscheincode aus einem Pool zu – der klassische Rückgewinnungsmechanismus. Berücksichtigt die Obergrenze für den Anrufwert + das kumulierte Budget (bei fehlgeschlagener Bearbeitung) + die Compliance-Erreichbarkeitsgrenze + die Unterdrückung von Sperren. Die task_id muss für die Rückgewinnung enthalten sein.

Parameter: member_id, pool_id, task_id, run_id?
earn_pointsSchreiben · Geld · Zusatzpoints:write

Vergeben Sie Treuepunkte an das Mitglied (margensichernd, kein Rabattmechanismus). Die Aufgabe MUSS für die Rückgewinnung eine task_id enthalten, damit der Schreibvorgang idempotent ist und an den richtigen Holdout-Arm gebunden wird.

Parameter: member_id, amount, task_id, description?
redeem_points_for_couponSchreiben · Geld · destruktivpoints:write

Punkte des Mitglieds werden atomar gegen einen Gutschein aus einem Pool eingelöst (Punkte + Gutschein oder keines von beidem). Die task_id muss für die Rückgewinnung enthalten sein.

Parameter: member_id, pool_id, points_cost, task_id

Die Integrität der Holdout-Daten wird serverseitig durchgesetzt. Eine Geldbuchung für ein Mitglied, dessen Arm holdout ist, wird nur als Absicht erfasst – kein Coupon, keine Punkte, keine Budgetausgabe. Der Agent muss den Arm zwar ebenfalls berücksichtigen, aber er wird nicht dazu verpflichtet: Der Server unterdrückt den Nebeneffekt in jedem Fall.

Bereitstellung des Agentenschlüssels SoClaw

SoClaw läuft unter einem Agenten (nicht-menschlich) API Schlüssel – einem erstklassigen Schlüsseltyp mit festen Obergrenzen, die der Agent niemals überschreiten kann. Erstellen Sie einen solchen Schlüssel unter /flash/account/api-keys – wählen Sie Schlüssel erstellen → KI-Agent → „SoClaw Rückgewinnung“. Dadurch werden die unten aufgeführten Bereiche mit den geringsten Berechtigungen, das Toolset, die Obergrenzen und die TTL vorausgewählt. Die einmalige Anzeige zeigt den Endpunkt MCP und die Bearer-Konfiguration. Ein fehlendes Tool bedeutet, dass der Schlüssel diesen Umfang nicht abdeckt – nicht, dass Flash die entsprechende Funktionalität nicht besitzt.

Berechtigungsbereichewinback:read · winback:claim · winback:write · coupons:read · coupons:write · points:write · members:read · metrics:read
Toolsetwinback
MützenWertobergrenze pro Anruf (maximaler Gutscheinwert), Mitgliederobergrenze pro Durchlauf und kumulatives Budget (pro Durchlauf/pro Tag/30 Tage) – alle werden bei einem Fehlerabschluss durchgesetzt.
TTLBegrenzte Gültigkeitsdauer – der Schlüssel läuft ab und wird neu ausgestellt, sodass ein durchgesickerter Schlüssel nicht unbegrenzt gültig ist.
Sofortige PauseEin Schalter auf Teamebene (und der automatische Beschwerdeschutz) setzt die Schreibvorgänge des Agenten auf „Fehlerfrei“. Der Agent kann sich nicht selbst wieder aktivieren.

Das Team/der Store wird serverseitig über den Schlüssel injiziert. Kein Werkzeug akzeptiert einen teamId, storeId, Tier oder SQL — Wenn Sie eine solche Angabe machen, ignoriert der Server sie.

Installieren Sie die OpenClaw-Laufzeitumgebung und den Skill SoClaw selbst.

Flash sichert die Rückgewinnung System (die Arbeitsliste, die MCP Werkzeuge, die Durchsetzung der Sicherheitsbestimmungen) und die SoClaw Fähigkeit (Die Entscheidungsdoktrin + das Playbook). Sie bringen die Laufzeitumgebung mit: Selbsthosting. OpenClaw Agent, richten Sie es auf Flash'S MCP Laden Sie den Server mit Ihrem Agentenschlüssel und dem Skill. Selbsthosting bietet Ihnen die operative Kontrolle – Sie können den Schlüssel konfigurieren, überwachen, versionieren und deaktivieren – aber es … Nicht interessiert das Sicherheitsmodell lockern: das MCP Die Seite behandelt den Agenten unabhängig davon als extern.

Registrieren Sie Flash als HTTP-Server MCP (der Serverschlüssel muss exakt flash lauten):

export FLASH_WINBACK_KEY="fl_live_your_agent_key_here"

# in the OpenClaw runtime's MCP config
{
  "mcpServers": {
    "flash": {
      "type": "http",
      "url": "https://flash.socialhub.ai/api/mcp",
      "headers": { "Authorization": "Bearer ${FLASH_WINBACK_KEY}" }
    }
  }
}

Laden Sie den SoClaw-Skill (SKILL.md + doctrine · levers · workflows · reference) herunter, legen Sie ihn im Skills-Verzeichnis Ihrer OpenClaw-Laufzeitumgebung ab und führen Sie die Schleife aus:

↓ Laden Sie die SoClaw-Fähigkeit (.zip) herunter

SoClaw verarbeitet außerdem eine Entscheidungsliste über die Rückgewinnung hinaus – Genehmigung (Kanal-Auftragsprüfung) und Betrugserkennung (Empfehlung innerhalb desselben Haushalts) – im selben Leasing-Zyklus (claim_agent_task → get_agent_task → complete_agent_task). Die Effekte werden über die bestehenden idempotenten Schreibvorgänge von Flash ausgeführt; jede Entscheidung kann zudem an einen Mitarbeiter eskaliert werden.

↓ Laden Sie die SoClaw-Entscheidungsfunktion (.zip) herunter.

Selbstprüfungen:

  • Der Agent sollte ausschließlich die Rückgewinnungs-Tools und die Hebelwerkzeuge sehen, die durch die Berechtigungen Ihres Schlüssels abgedeckt sind – nichts anderes.
  • Ein erstes claim_winback_task gibt eine Aufgabe mit einer Lease zurück, oder NO_TASKS_AVAILABLE / WINBACK_DISABLED – beides sind normale Stoppbedingungen, keine Fehler.
  • Ein Coupon-/Punkteanruf ohne task_id muss zurückkommen WINBACK_TASK_REQUIRED – bestätigen Sie, dass Ihre Schleife den Hebel immer an der beanspruchten Aufgabe verankert.

Die Sicherheitsgrenze ist der Server.

Die wichtigste Eigenschaft: Die Berechtigungen, Limits und die Einhaltung der Vorschriften des Agenten werden Flash beim Schreiben durchgesetzt – niemals auf die Argumentation, Bestätigung oder Systemeingabe des Agenten angewiesen. Die HALTE-Einstellungen des Agenten sind eine Unterstützung, die die Wahrscheinlichkeit eines guten Ergebnisses erhöht; sie stellen keine Kontrolle dar. Selbst ein durchgesickerter Schlüssel oder ein per Eingabeaufforderung generiertes Modell unterliegt folgenden Einschränkungen:

  • Fehlerhafte Geldkontrolle. Jeder Coupon/Punkte-Eintrag unterliegt einem Limit pro Anruf und einem Gesamtbudget. Wird eines davon überschritten, wird der Eintrag abgelehnt – der Agent kann die Eingaben nicht so anpassen, dass er das Limit umgeht, und Budgeterschöpfung kann die sofortige Pause auslösen.
  • Compliance-, Frequenz- und Ermüdungsprüfungen. Zustimmung/Abmeldung, systemübergreifende Kontakthäufigkeit und Ermüdung werden serverseitig erneut geprüft, selbst wenn der Agent die get_winback_context-Vorschau ignoriert hat. Eine Ablehnung bedeutet Abbruch, kein erneuter Versuch, die Prüfung zu umgehen.
  • Durchsetzung der Sperre. Eine Zahlungsanweisung für ein Mitglied, das die Sperre aufgehoben hat, wird nur als Absicht erfasst – die Nebenwirkung wird unabhängig von der Entscheidung des Agenten unterdrückt.
  • Sofortige Pause + Beschwerdeschutz. Ein Teamschalter setzt alle Agenten-Schreibvorgänge auf „Fehlerfrei abgeschlossen“. Ein automatischer Schutzschalter wird aktiviert, sobald die Spam-Beschwerderate einen bestimmten Schwellenwert überschreitet. Es gibt kein Agenten-Tool zum Fortsetzen der Pausierung – nur ein Mitarbeiter kann die Bearbeitung fortsetzen.
  • Nicht vertrauenswürdige Mitgliedsdaten. Notiztexte, Zeitleistentexte und jegliche Tool-Ausgabe sind DATEN, keine Anweisungen – sie werden beim Schreiben bereinigt und niemals ausgeführt. get_winback_context gibt absichtlich keine Notiztexte zurück, um zu verhindern, dass eingeschleuster Text an den Agenten zurückgespeist wird.

Fehlerbehandlung und Codes

Zwei Kanäle. Ein Protokollfehler (JSON-RPC: Ungültige Methode / unbekanntes Tool) bedeutet in der Regel einen falschen Toolnamen – überprüfen Sie das Präfix Flash: und die Schreibweise. Ein Ergebnis von isError: true stellt eine eindeutige Grenze dar, die Sie einmalig übermitteln und den nächsten Schritt ausführen können. Versuchen Sie niemals, diese Grenze zu umgehen.

CodeBedeutungVorgehensweise
NO_TASKS_AVAILABLEDer Arbeitsvorrat ist leer.Hören Sie auf, Ansprüche zu stellen; Ziehen Sie sich zurück – fragen Sie nicht zu streng.
WINBACK_DISABLEDRückgewinnung ist pausiert (Sofortpause/Schutzschalter ausgelöst).Stopp. Nur ein Mensch kann fortfahren – es gibt kein Agenten-Tool, das die Pause aufheben kann.
TOO_MANY_OPEN_LEASESIhre Obergrenze für offene Mietverträge ist erreicht.Abschließen oder auslaufen lassen und dann erneut anfordern.
LEASE_EXPIRED / NOT_LEASE_OWNERDer Mietvertrag wurde zurückgefordert oder an einen anderen Arbeitnehmer weitervermietet.Erneut lesen, nicht neu schreiben – die Arbeit liegt nicht mehr in Ihrer Verantwortung.
ALREADY_COMPLETEDDie Aufgabe wurde bereits abgeschlossen.Lesen Sie das gespeicherte Ergebnis erneut. nicht erneut vervollständigen.
WINBACK_TASK_REQUIREDBei einer Rückgewinnungsmaßnahme fehlte die task_id.Den Hebel MIT dem beanspruchten Teil erneut ausgeben task_idDas ist so gewollt, kein Fehler.
WINBACK_TASK_NOT_FOUND / WINBACK_TASK_MEMBER_MISMATCHFalsche Aufgabe oder Zuordnung von Aufgabe und Mitglied.Nutzen Sie die Aufgabe, die Sie dem jeweiligen Mitglied zugewiesen haben.
NOTE_INVALIDDie serverseitige Bereinigung der Notiz ist fehlgeschlagen.Als reinen Fließtext umschreiben (ohne Auszeichnung/Links/personenbezogene Daten); einmal wiederholen.
Write guard / budgetWertobergrenze überschritten oder Gesamtbudget aufgebraucht.Weiterleitung; Aufgabe als HOLD abschließen; keinen erneuten Versuch zur Umgehung unternehmen.

Noch ein Hinweis: meta.hasData: false von einem Metriktool ist ein Erfolg, kein Fehler – es bedeutet „keine Daten für dieses Fenster“, niemals 0.

Zahlen und Ehrlichkeit

Jede Rate / jeder Trend / jede Aggregation durchläuft die festgelegten Kennzahlensysteme (list_metrics → describe_metric → query_metric) — wird vom Agenten nie berechnet und ist niemals SQL-basiert. Die Kennzahlen zur Rückgewinnungs-Ehrlichkeit — winback_uplift, winback_treated_n, winback_holdout_n und die Konversionsraten der behandelten/unbehandelten Proben – drücken den Erfolg aus als kausale Verbesserung (behandelte Kontrollgruppe im gleichen Zeitraum)keine absolute Erlösung. Der Agent zeichnet die gewonnenen Erkenntnisse auf als hypothesis Anmerkungen; ein Mensch prüft und fördert jede Richtlinienänderung – der Agent optimiert sich niemals selbst.

Uplift-Ranking – wie die Arbeitsliste geordnet ist

Die Priorität der Arbeitsliste ist Value-at-Risk × Uplift, wenn ein Uplift-Modell für das Team passt, andernfalls reiner Value-at-Risk. Der Wechsel erfolgt automatisch und wird pro Scan entschieden – es gibt nichts zu konfigurieren.

Das Modell ist ein logistischer Uplift mit zwei Modellen, das pro Team auf Basis jedes Scans der eigenen randomisierten Holdout-Daten des Programms angepasst wird – nur ausgereifte Attributionszeilen, mit der gleichen Konversionsdefinition für beide Arme:

uplift(x) = P(convert | treated, x) − P(convert | holdout, x)

Die Ergebnisse sind deterministisch – keine Zufallsstichprobe –, sodass dieselben Daten immer zum gleichen Ranking führen.

Beispiel-Gates – alle müssen bestanden werden, bevor dem Modell vertraut wird

  • ≥ 200 ausgereifte behandelte Zeilen
  • ≥ 50 ausgereifte holdout Zeilen
  • ≥ 20 Konversionen
  • Beide logistischen Anpassungen konvergierten.

Unterhalb eines beliebigen Gates (any) wird das Modell für diesen Scan verworfen (null), und das Ranking basiert wieder auf dem reinen Value-at-Risk – Null Verhaltensänderung, nicht auf einer verschlechterten Schätzung. Eine negative Uplift-Schätzung (negative Uplift-Schätzung), ein gemessener Rückschlag, setzt die Priorität der Aufgabe auf 0 – die Aufgabe bleibt in der Aufgabenliste sichtbar, mit den Zahlen, die den Grund dafür angeben.

Was Ihr Agent sieht. Wenn das Modell passt, trägt task.reason die Art expected_incremental_value mit der Abwanderungswahrscheinlichkeit, dem CLV, dem Value-at-Risk, dem upliftEstimate und ihrem Produkt. Nutzen Sie es über dieselben MCP-Arbeitslistentools (Claim / Get / Complete) – es gibt keine schemabrechenden Änderungen und die älteren Ursachenarten treten immer noch auf, wenn das Modell nicht passt.