erfolgschat

n8n community node for Erfolgschat — Leads, Kontakte, Chats, Labels & Event-Trigger

Package Information

Released: 3 mo ago
Downloads: 35 weekly / 909 monthly
Latest Version: 1.4.1
Author: Erfolgschat

Documentation

n8n-nodes-erfolgschat

n8n community node for Erfolgschat — work Leads, Kontakte, Chats & Labels and
trigger workflows on Erfolgschat events, with a single API key. No manual
webhook wiring.

What's in here

  • Credential Erfolgschat API — Base URL (https://chat.flugzumerfolg.com/api)
    • your ec_live_… API key. The "Test" button hits GET /v1/me.
  • Node Erfolgschat (actions):
    • Lead / Kontakt: Erstellen (optional direkt Zugewiesen an), Aktualisieren, Abrufen, Liste (mit updatedSince-Polling), Zuweisen / Zuweisung entfernen (per Telefonnummer — funktioniert schon BEVOR es eine Konversation gibt, z. B. frisch aus Close importierte Leads)
    • Konversation: Liste, Status setzen, Label hinzufügen / bestätigen / entfernen, Zuweisen / Zuweisung entfernen — jede dieser Aktionen akzeptiert Konversations-ID ODER Telefonnummer (eine Nummer = genau ein Chat; bei mehreren WA-Accounts → ID nutzen). Labels werden als Dropdown aus Erfolgschat geladen (aktualisiert sich beim Neuladen, sobald du ein Label anlegst).
    • Mitarbeiter: Liste (IDs für die Zuweisung ermitteln)
  • Node Erfolgschat Trigger (REST-hook): startet bei conversation.new,
    status_changed, active_changed, assigned, label_added/removed/confirmed.
    Registriert/entfernt sein Webhook-Abo automatisch beim Aktivieren/Deaktivieren.
    Jede eingehende Lieferung wird per HMAC-SHA256 verifiziert (Header
    X-Erfolgschat-Signature: sha256=<hex> über den Roh-Body, mit dem beim Anlegen
    des Abos einmalig zurückgegebenen Secret) — Events ohne gültige Signatur werden
    verworfen, sodass die öffentliche Callback-URL keine gefälschten Events annimmt.

API keys

Erzeuge einen Key in der Erfolgschat-Admin-Oberfläche unter API-Keys und gib
ihm die nötigen Scopes:

Node-Aktion Scope
Leads lesen/schreiben leads:read / leads:write
Kontakte lesen/schreiben + Name-Rückschrieb contacts:read / contacts:write
Chats lesen / Status+Labels conversations:read / conversations:write
Label-Dropdown (Konversation → Label …) conversations:read
Mitarbeiter auflisten (IDs für Zuweisung) users:read
Trigger (Webhook-Abos) webhooks:manage

Hinweis: Das Label-Dropdown (GET /v1/labels) benötigt conversations:read.
Fehlt der Scope, lädt das Dropdown leer mit einem Hinweis statt mit einem Fehler.

Die vollständige API: https://chat.flugzumerfolg.com/api/v1/openapi.json.

Build

npm install
npm run build      # tsc → dist/ + kopiert das Icon

In n8n installieren

Self-hosted n8n: Settings → Community Nodes → Install → n8n-nodes-erfolgschat
(nach dem npm publish), oder lokal zum Testen:

# im Node-Repo
npm run build && npm link
# im n8n-Custom-Verzeichnis (~/.n8n/custom)
mkdir -p ~/.n8n/custom && cd ~/.n8n/custom && npm link n8n-nodes-erfolgschat
# n8n neu starten

Bei selbst-gehostetem n8n ggf. N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true bzw.
das Erlauben unverifizierter Community-Nodes setzen.

Veröffentlichen

npm version patch
npm publish --access public

Test-Flow

  1. Credential anlegen (Base URL + Key), „Test" → grün (/v1/me).
  2. Action: Node „Erfolgschat" → Lead → Erstellen → Telefonnummer + Name → ausführen → 201.
  3. Trigger: Node „Erfolgschat Trigger" → Event „Neue Konversation" → Workflow
    aktivieren → in Erfolgschat einen neuen Inbound auslösen → der Workflow startet.

Änderungen

1.4.0

  • Trigger: HMAC-Signatur-Verifizierung. Der Trigger speichert jetzt das beim
    Anlegen des Abos zurückgegebene Secret und prüft bei jeder Lieferung den
    X-Erfolgschat-Signature-Header (HMAC-SHA256 über den Roh-Body, konstante-Zeit-
    Vergleich). Lieferungen ohne / mit falscher Signatur werden verworfen.
  • Label-Dropdown robuster. getLabels fängt Fehler ab (403 ohne
    conversations:read, transiente Fehler, falsche Base-URL) und zeigt einen
    Hinweis statt eines harten Node-Fehlers; nicht-Array-Antworten werden abgefangen.
  • checkExists des Triggers prüft jetzt serverseitig (GET /v1/webhook-subscriptions),
    ob das Abo noch existiert und auf diese URL/dieses Event zeigt — verhindert
    still-tote oder doppelte Abos nach Crash / out-of-band-Löschung.
  • labelId wird in der URL nun encodeURIComponent-gewrappt (konsistent zu den
    übrigen Pfad-Parametern).
  • README: Scope-Tabelle um users:read + conversations:read (Label-Dropdown) ergänzt.

Discussion