🚀 Jetzt neu: FlowAI! Ein revolutionärer Chat mit personalisierten AI-Agenten. 🌟

FlowSupport API - für Postfächer, Unterhaltungen und Antworten

Eine vollständige REST API für den WhatsApp-Posteingang. Sie deckt Postfächer samt Freigaben und Stilllegung, Unterhaltungen mit Status, Zuständigkeit, Labels und CRM-Verknüpfung, das Senden von Antworten über die Zustellwarteschlange, interne Notizen, die Volltextsuche, Anhänge und drei Auswertungen ab.

🚀 Schnellstart

Basis-URL: https://creativeskyline.de/api/flowsupport/context https://creativeskyline.de/api/flowsupport/inboxes https://creativeskyline.de/api/flowsupport/conversations https://creativeskyline.de/api/flowsupport/messages https://creativeskyline.de/api/flowsupport/reports
FlowSupport-Berechtigung erforderlich
Der Benutzer benötigt eine aktive FlowSupport-Berechtigung. Ist das Modul in den Teameinstellungen abgeschaltet, antwortet jede Route mit HTTP 403.
Zwei Ebenen von Rechten
Die Modulberechtigung entscheidet nur, ob der Schlüssel FlowSupport überhaupt benutzen darf. Welche Postfächer er erreicht, entscheidet die Rechtestufe je Postfach: read liest, reply antwortet und ändert, owner verwaltet zusätzlich. Ein Postfach ohne Stufe verhält sich wie eines, das es nicht gibt, und antwortet mit HTTP 404.
Alles wird über UUIDs adressiert
Postfach, Unterhaltung, Nachricht, Anhang, Notiz, Label und Vorlage werden ausschließlich über ihre UUID angesprochen. Numerische Felder wie inbox_id oder contact_id werden nicht entgegengenommen und führen zu einem Validierungsfehler, der das Ersatzfeld benennt.
Diese API ist nicht der Listener-Vertrag
Die Routen unter whatsapp/gateway und whatsapp/connections gehören der macOS-App, die das Postfach mit WhatsApp verbindet. Sie haben eine eigene Authentifizierung und sind nicht Teil dieser Dokumentation.

1. API-Zugangsdaten abrufen

Melden Sie sich an, öffnen Sie Profil → API-Zugang und kopieren Sie Ihren persönlichen API-Key (pk_...).

2. Authentifizierung

Alle Anfragen benötigen diese HTTP-Header:

Authorization: Bearer pk_dein_api_key
Accept: application/json

3. Einstieg

Beginnen Sie mit GET /api/flowsupport/context. Die Antwort nennt alle erreichbaren Postfächer mit Ihrer eigenen Rechtestufe, die möglichen Zustände einer Unterhaltung, die vergebbaren Freigabestufen und die Grenzen für Dateianhänge.

4. Antworten gehen in eine Warteschlange

Eine Antwort wird nicht sofort zugestellt. POST /api/flowsupport/conversations/{uuid}/messages legt sie in die Zustellwarteschlange und antwortet mit HTTP 202. Die zurückgegebenen Einträge tragen den Zustellzustand: pending, claimed, sending, sent, failed, uncertain, cancelled oder expired. Ein fehlgeschlagener Eintrag kann erneut versucht, ein noch nicht abgeschickter abgebrochen werden.

5. Doppelte Zustellung vermeiden

Senden Sie beim Antworten ein eigenes request_id als UUID. Eine Wiederholung derselben Anfrage mit demselben Wert liefert dieselbe Einreichung zurück, statt eine zweite Nachricht an den Kunden zu schicken.

🧭 Überblick

Postfächer, Zustände und Grenzen abrufen

GET /api/flowsupport/context

Liefert alle erreichbaren Postfächer mit der eigenen Rechtestufe, den Fähigkeiten ihres Kanals, dem Verbindungszustand und den zuweisbaren Teammitgliedern je Postfach, dazu die vier Zustände einer Unterhaltung, die beiden vergebbaren Freigabestufen sowie die Grenzen für Dateianhänge.

📥 Postfächer

Postfächer werden nicht über die API eingerichtet
Eine Verbindung entsteht durch das Koppeln der macOS-App mit einem QR-Code. Das ist ein Vorgang am Gerät und keine HTTP-Anfrage, deshalb gibt es hier kein Anlegen.
Stillgelegte Postfächer verschwinden aus jeder Leseantwort
Ein stillgelegtes oder zur Löschung vorgemerktes Postfach ist für niemanden mehr sichtbar, auch nicht für seinen Eigentümer. Die Verwaltungswege Stilllegen und Löschung vormerken erreichen es trotzdem, sonst wäre die zweite Stufe unerreichbar.
Fähigkeiten und Verbindung stehen am Postfach
capabilities nennt, was der Kanal des Postfachs kann: Text, Dateien, neue Unterhaltungen, Gruppen, Erwähnungen, Label-Abgleich sowie die Grenzen für Textlänge und Dateien. connection sagt, ob das Postfach gerade zustellt. status ist die letzte Meldung des Kanals; bleibt sein Lebenszeichen länger als fünf Minuten aus, meldet stale true und delivers_now false, auch wenn status noch ready lautet. Ein Postfach, das nicht zustellt, nimmt Antworten weiterhin in seine Warteschlange auf.
Die Eigentümerstufe ist nicht vergebbar
owner folgt aus dem Postfach selbst und wird nie als Freigabe gespeichert. Vergeben lassen sich read und reply.

Postfächer auflisten

GET /api/flowsupport/inboxes

Alle Postfächer, die dieser Schlüssel erreicht, mit der eigenen Rechtestufe, den Fähigkeiten des Kanals, dem Verbindungszustand und den Angaben, ob gesendet, freigegeben und verwaltet werden darf.

Ein Postfach abrufen

GET /api/flowsupport/inboxes/{uuid}

Ein einzelnes Postfach mit der eigenen Rechtestufe und zusätzlich den Teammitgliedern, die in diesem Postfach zuständig sein können. Ein Postfach ohne Rechtestufe antwortet mit HTTP 404.

Ein Postfach umbenennen

PATCH /api/flowsupport/inboxes/{uuid}

Ändert den Namen des Postfachs und die Adresse, die es als eigene anzeigt. Beide Felder werden zusammen gesendet: fehlt die eigene Adresse, wird sie geleert. Verlangt das Recht, Postfächer zu verwalten, auch vom Eigentümer des Postfachs; ohne dieses Recht antwortet die Route mit HTTP 403.

Request Body:

name string * Der Name, höchstens 255 Zeichen.
own_address string Die eigene Adresse des Postfachs, bei WhatsApp die Rufnummer, höchstens 20 Zeichen. Fehlt das Feld oder ist es leer, wird die Adresse geleert. own_number wird als gleichbedeutender Name angenommen.

Den Sendetakt eines Postfachs setzen

PUT /api/flowsupport/inboxes/{uuid}/pacing

Setzt die Wartefrist und die beiden Stundengrenzen. Die Grenzen lehnen nichts ab, sie bestimmen, wie schnell die Warteschlange an den Kanal übergeben wird. Alle drei Werte werden zusammen gesendet. Darf der Eigentümer des Postfachs und wer Postfächer verwalten darf. Wird das Postfach gerade verwendet, antwortet die Route mit HTTP 503 und dem Fehlercode inbox_busy; der Aufruf kann dann wiederholt werden.

Request Body:

outbound_wait_hours integer * Wie viele Stunden eine Sendung auf den Kanal wartet, bevor sie verfällt. 1 bis 168.
max_new_chats_per_hour integer * Wie viele neue Unterhaltungen das Postfach je Stunde beginnt. 1 bis 1000.
max_messages_per_hour integer * Wie viele Nachrichten das Postfach je Stunde übergibt. 1 bis 1000.

Den Label-Abgleich eines Postfachs abrufen

GET /api/flowsupport/inboxes/{uuid}/label-sync

Der Stand des Abgleichs der Labels mit dem Kanal: ob er eingeschaltet ist, ob das Konto ihn unterstützt und der Bestand vollständig eingelesen wurde, sowie die Zahl der ausstehenden, fehlgeschlagenen und widersprüchlichen Übertragungen. Verlangt dasselbe Recht wie das Ändern.

Den Label-Abgleich ein- oder ausschalten

PUT /api/flowsupport/inboxes/{uuid}/label-sync

Schaltet den Abgleich der Labels mit dem Kanal ein oder aus. Das erste Einschalten führt die Labels des Postfachs mit denen auf dem Gerät zusammen und verlangt deshalb device_verified. Einschalten geht erst, wenn supported und initialized wahr sind, und nur mit höchstens 20 Labels. Ausschalten verwirft ausstehende Übertragungen. Darf der Eigentümer des Postfachs und wer Postfächer verwalten darf.

Request Body:

enabled boolean * true schaltet den Abgleich ein, false aus.
device_verified boolean Bestätigt, dass der Abgleich am Gerät mit dem echten Konto geprüft wurde. Pflicht beim ersten Einschalten, sonst ohne Bedeutung.

Freigaben eines Postfachs auflisten

GET /api/flowsupport/inboxes/{uuid}/shares

Die vergebenen Rechtestufen eines Postfachs. Das Lesen dieser Liste verlangt dasselbe Recht wie das Ändern: wer nicht freigeben darf, erfährt auch nicht, wer sonst noch Zugriff hat. Der Eigentümer erscheint hier nicht, seine Stufe folgt aus dem Postfach selbst.

Ein Postfach freigeben

POST /api/flowsupport/inboxes/{uuid}/shares

Gibt das Postfach einem Teammitglied auf einer Stufe frei. Eine zweite Freigabe an dieselbe Person ändert die Stufe, statt eine zweite Zeile anzulegen, und antwortet in beiden Fällen mit HTTP 201.

Request Body:

user_uuid string * UUID des Teammitglieds. Eine Person außerhalb des Teams führt zu einem Validierungsfehler.
level string * read oder reply. owner ist nicht vergebbar.

Eine Freigabe entziehen

DELETE /api/flowsupport/inboxes/{uuid}/shares/{userUuid}

Nimmt einem Teammitglied den Zugriff auf das Postfach. Eine Freigabe zu entziehen, die es nicht gibt, ist kein Fehler.

Ein Postfach stilllegen

POST /api/flowsupport/inboxes/{uuid}/suspend

Beendet Empfang und Sicht auf das Postfach. Nachrichten, Anhänge und Medien bleiben unverändert erhalten; entzogen wird die Sicht, nicht die Daten.

Ein Postfach zur Löschung vormerken

POST /api/flowsupport/inboxes/{uuid}/request-deletion

Merkt das Postfach mit allen Nachrichten und Medien zur Löschung vor. Dieser Schritt lässt sich über die API nicht zurücknehmen.

🗂️ Unterhaltungen

Lesen braucht read, Ändern braucht reply
Status, Zuständigkeit, Labels, Verknüpfungen und Notizen verlangen mindestens die Stufe reply auf dem Postfach der Unterhaltung. Mit read allein antwortet jeder dieser Wege mit HTTP 403.
Ein Erstkontakt kann eine Prüfung auslösen
Eine Rufnummer, die dem Postfach noch nie begegnet ist, muss von der macOS-App bei WhatsApp geprüft werden. Die API ruft WhatsApp nie selbst auf: sie antwortet mit HTTP 202 und einem Vorgang, dessen Stand abgefragt werden kann.

Unterhaltungen auflisten

GET /api/flowsupport/conversations

Die Unterhaltungen aller erreichbaren Postfächer, neueste Aktivität zuerst. Ohne Filter umfasst die Liste jedes Postfach, das dieser Schlüssel sieht.

Query-Parameter:

inbox_uuid string Auf ein Postfach einschränken.
status string open, in_progress, waiting oder done.
assigned_user_uuid string Nur Unterhaltungen dieses Teammitglieds.
label_uuid string Nur Unterhaltungen mit diesem Label.
search string Sucht im Namen der Unterhaltung sowie in Name und Rufnummer der Gegenstelle.
unread boolean Nur Unterhaltungen mit ungelesenen eingehenden Nachrichten.
per_page integer Einträge pro Seite, 1 bis 200, Standard 50.
page integer Seitenzahl, Standard 1.

Eine Unterhaltung mit einer Rufnummer beginnen

POST /api/flowsupport/conversations

Öffnet eine Unterhaltung mit einer Rufnummer, die uns nicht geschrieben hat. Drei Ausgänge: HTTP 200 mit der bereits bestehenden Unterhaltung, HTTP 201 mit der neu geöffneten Unterhaltung, oder HTTP 202 mit einem Prüfvorgang, wenn die Rufnummer erst von der macOS-App bei WhatsApp geprüft werden muss. Ist das Postfach nicht verbunden, sein Stundenlimit für neue Chats ausgeschöpft oder WhatsApps eigenes Kontingent erreicht, wird nichts abgelehnt: die Unterhaltung wird sofort angelegt und mit HTTP 202 samt `queued: true` und `estimated_start_at` zurückgegeben, Prüfung und Versand warten in der Warteschlange des Postfachs. Eine unlesbare, nicht erreichbare oder mehrdeutige Rufnummer antwortet mit HTTP 422.

Request Body:

inbox_uuid string * Das Postfach, aus dem geschrieben wird. Verlangt die Berechtigung zum Senden.
phone string * Die Rufnummer, wie sie getippt wurde. Die Plattform liest sie selbst in die internationale Form.
name string Anzeigename der Gegenstelle, falls bekannt.
contact_uuid string CRM-Kontakt, mit dem die Gegenstelle verknüpft wird.

Eine Unterhaltung abrufen

GET /api/flowsupport/conversations/{uuid}

Eine Unterhaltung mit ihren Gegenstellen, Labels, CRM-Verknüpfungen, der Zahl ungelesener Nachrichten und den Rechten dieses Schlüssels an ihr.

Den Zustand einer Unterhaltung ändern

PUT /api/flowsupport/conversations/{uuid}/status

Setzt den Bearbeitungszustand. Eine abgeschlossene Unterhaltung wird von einer neuen eingehenden Nachricht automatisch wieder geöffnet.

Request Body:

status string * open, in_progress, waiting oder done.

Die Zuständigkeit setzen oder aufheben

PUT /api/flowsupport/conversations/{uuid}/assignee

Übergibt die Unterhaltung an ein Teammitglied oder hebt die Zuständigkeit auf. Ein Mitglied ohne Zugriff auf dieses Postfach wird mit HTTP 422 abgelehnt, statt stillschweigend eingetragen zu werden.

Request Body:

assigned_user_uuid string * UUID des Teammitglieds, oder null zum Aufheben. Das Feld muss vorhanden sein.

Die Labels einer Unterhaltung setzen

PUT /api/flowsupport/conversations/{uuid}/labels

Die übergebene Liste ist der gewünschte Endzustand, kein Umschalter: Fehlendes wird gesetzt, nicht Genanntes entfernt. Dieselbe Anfrage zweimal zu senden ändert deshalb nichts. Ein Label, das nicht zu diesem Postfach gehört, wird mit HTTP 422 abgelehnt.

Request Body:

label_uuids array * Liste der Label-UUIDs, höchstens 50. Eine leere Liste entfernt alle Labels.
PUT /api/flowsupport/conversations/{uuid}/links

Verknüpft die Unterhaltung mit Kunde, Projekt, Kontakt oder Lead. Ein weggelassenes Feld bleibt unverändert, ein ausdrückliches null hebt die Verknüpfung auf. Ein Datensatz, den dieser Schlüssel nicht verknüpfen darf, wird mit HTTP 422 abgelehnt, statt stillschweigend nichts zu bewirken.

Request Body:

client_uuid string CRM-Kunde, oder null zum Aufheben.
project_uuid string Projekt des verknüpften Kunden, oder null.
contact_uuid string CRM-Kontakt, oder null.
lead_uuid string Lead, oder null.
prefer string client oder lead. Entscheidet, welche Seite gewinnt, wenn beides gesetzt wird. Standard ist client.

Eine Unterhaltung als gelesen markieren

POST /api/flowsupport/conversations/{uuid}/read

Setzt die Leseposition auf die neueste Nachricht. Die Antwort nennt die verbleibende Zahl ungelesener Nachrichten.

✉️ Nachrichten

Senden heißt in die Warteschlange legen
Eine Antwort wird von der macOS-App zugestellt, nicht von dieser API. Der Aufruf antwortet deshalb mit HTTP 202 und den Einträgen der Warteschlange samt ihrem Zustellzustand.
Ein Eintrag im Zustand uncertain wird nicht blind wiederholt
uncertain bedeutet, dass der Versand begonnen hat und WhatsApp ihn nicht bestätigt hat. Die Nachricht kann bereits angekommen sein. Erneut versuchen lassen sich nur Einträge in den Zuständen failed und expired.
Widerrufene Nachrichten behalten ihren Platz, nicht ihren Inhalt
Eine vom Absender gelöschte Nachricht bleibt in der Historie stehen, trägt aber weder Text noch Anhänge. Der Abruf ihrer Dateien antwortet mit HTTP 404.

Den Verlauf einer Unterhaltung abrufen

GET /api/flowsupport/conversations/{uuid}/messages

Die Nachrichten einer Unterhaltung, neueste zuerst. Kanalinterne Protokollzeilen erscheinen nicht, genauso wenig wie in der Oberfläche.

Query-Parameter:

per_page integer Einträge pro Seite, 1 bis 200, Standard 50.
page integer Seitenzahl, Standard 1.

Eine Antwort senden

POST /api/flowsupport/conversations/{uuid}/messages

Legt eine Antwort in die Zustellwarteschlange und antwortet mit HTTP 202. Text und Dateien werden zu je einem eigenen Eintrag. Dateien kommen als multipart/form-data oder als UUIDs vorab hochgeladener Dateien; eine Adresse, die der Aufrufer wählt, wird nie abgerufen.

Request Body:

body string Der Text, höchstens 5000 Zeichen. Pflicht, wenn keine Datei mitgeschickt wird.
attachments file[] Bis zu fünf Dateien, je höchstens 25 MB, nur die im Überblick genannten Dateitypen.
upload_uuids array UUIDs vorab hochgeladener Dateien dieses Postfachs, in der Reihenfolge des Versands. Zusammen mit attachments höchstens fünf.
request_id string UUID zur Wiederholungssicherheit. Dieselbe Anfrage mit demselben Wert liefert die ursprüngliche Einreichung zurück, statt ein zweites Mal zu senden.

Eine Zustellung erneut versuchen

POST /api/flowsupport/conversations/{uuid}/messages/{outboundUuid}/retry

Stellt einen fehlgeschlagenen oder abgelaufenen Eintrag zurück in die Warteschlange. Ein Eintrag in einem anderen Zustand wird mit HTTP 409 abgelehnt.

Eine Zustellung abbrechen

POST /api/flowsupport/conversations/{uuid}/messages/{outboundUuid}/cancel

Bricht einen noch nicht abgeschickten Eintrag ab. Ein bereits zugestellter Eintrag wird mit HTTP 409 abgelehnt.

GET /api/flowsupport/messages/search

Volltextsuche über die Nachrichtentexte aller erreichbaren Postfächer. Suchbegriffe unter drei Zeichen stehen nicht im Index und liefern nichts. Ist der Index nicht verfügbar, meldet die Antwort available: false statt eines Fehlers.

Query-Parameter:

q string * Der Suchbegriff.
per_page integer Treffer pro Seite, 1 bis 200, Standard 50.
page integer Seitenzahl, Standard 1.

Einen Anhang abrufen

GET /api/flowsupport/messages/{uuid}/attachments/{attachmentUuid}/download

Liefert eine zeitlich begrenzte Adresse für die Datei eines Anhangs, gültig für 15 Minuten. Der Anhang einer widerrufenen Nachricht antwortet mit HTTP 404.

Query-Parameter:

variant string original, thumb oder playback. Standard ist original; fehlt die gewünschte Fassung, wird das Original geliefert.

Eine Datei vorab hochladen

POST /api/flowsupport/inboxes/{uuid}/uploads

Nimmt eine Datei als multipart/form-data entgegen und hält sie 60 Minuten für dieses Postfach bereit. Die zurückgegebene uuid wird beim Senden oder an einer Notiz unter upload_uuids genannt. Verlangt mindestens die Stufe reply. Es gelten die Grenzen des Versands: höchstens 25 MB und die im Überblick genannten Dateitypen. Dieselbe Datei erneut hochgeladen liefert denselben Eintrag.

Request Body:

file file * Die Datei.

Eine kleine Datei als Base64 vorab hochladen

POST /api/flowsupport/inboxes/{uuid}/uploads/inline

Wie der Upload als multipart, aber mit dem Inhalt als Base64 in einem JSON-Rumpf. Gedacht für Aufrufer ohne multipart. Der Dateityp wird am Inhalt erkannt, nicht am Namen. Die Größe ist auf rund 2,8 MB begrenzt; größere Dateien nimmt der Upload als multipart.

Request Body:

filename string * Der Dateiname, wie ihn der Empfänger sehen soll, höchstens 180 Zeichen.
content_base64 string * Der Dateiinhalt als Standard-Base64. Ein data:-Präfix und Leerraum sind erlaubt.

Eine vorab hochgeladene Datei ansehen

GET /api/flowsupport/uploads/{uuid}

Name, Typ, Größe und Ablauf einer vorab hochgeladenen Datei. Nur wer sie hochgeladen hat, sieht sie; alle anderen erhalten HTTP 404.

Eine vorab hochgeladene Datei verwerfen

DELETE /api/flowsupport/uploads/{uuid}

Entfernt eine vorab hochgeladene Datei sofort, statt ihren Ablauf abzuwarten. Bereits eingereihte Sendungen und geschriebene Notizen bleiben davon unberührt.

Den Stand einer Rufnummernprüfung abrufen

GET /api/flowsupport/number-lookups/{uuid}

Der Stand eines Prüfvorgangs, den das Beginnen einer Unterhaltung mit HTTP 202 angelegt hat. Solange open true ist, arbeitet die macOS-App noch daran. Sobald eine Unterhaltung entstanden ist, nennt conversation_uuid sie.

📝 Interne Notizen

Notizen erreichen nie einen Kunden
Eine Notiz liegt neben der Unterhaltung und wird niemals über den Kanal zugestellt.
Ändern darf nur, wer sie geschrieben hat
Der Eigentümer des Postfachs darf eine fremde Notiz entfernen, aber nie umschreiben. Sonst ließe sich die Einschätzung einer Kollegin ändern, ohne dass die Urheberschaft es zeigt.

Notizen einer Unterhaltung auflisten

GET /api/flowsupport/conversations/{uuid}/notes

Die internen Notizen einer Unterhaltung, neueste zuerst.

Query-Parameter:

per_page integer Einträge pro Seite, 1 bis 200, Standard 50.
page integer Seitenzahl, Standard 1.

Eine Notiz schreiben

POST /api/flowsupport/conversations/{uuid}/notes

Legt eine interne Notiz an, mit Text, Dateien oder beidem. Verlangt mindestens die Stufe reply auf dem Postfach. Dateien werden vorab hochgeladen und hier über ihre UUIDs genannt. Konnte eine Datei nicht gespeichert werden, steht das unter warnings.

Request Body:

note string Der Text, höchstens 5000 Zeichen. Pflicht, wenn keine Datei genannt wird.
upload_uuids array UUIDs vorab hochgeladener Dateien dieses Postfachs, höchstens fünf. Videos sind an Notizen nicht erlaubt.

Eine Notiz ändern

PATCH /api/flowsupport/conversations/{uuid}/notes/{noteUuid}

Schreibt eine Notiz um. Nur die Person, die sie verfasst hat, darf das; jeder andere erhält HTTP 403.

Request Body:

note string * Der neue Text, höchstens 5000 Zeichen.

Eine Notiz entfernen

DELETE /api/flowsupport/conversations/{uuid}/notes/{noteUuid}

Entfernt eine Notiz. Die verfassende Person darf das, der Eigentümer des Postfachs ebenfalls.

🏷️ Labels und Vorlagen

Ein Label gehört genau einem Postfach
Labels lassen sich nicht zwischen Postfächern verschieben, weil die Rechtestufe, die sie sichtbar macht, am Postfach hängt.
Eine Vorlage ohne Postfach gilt teamweit
Wer eine teamweite Vorlage anlegt, braucht mindestens die Stufe reply auf irgendeinem Postfach. Ohne diese Untergrenze könnte eine nur lesende Person den Text ändern, mit dem das ganze Team antwortet.

Labels auflisten

GET /api/flowsupport/labels

Die Labels aller erreichbaren Postfächer, alphabetisch.

Query-Parameter:

inbox_uuid string Auf ein Postfach einschränken.

Ein Label anlegen

POST /api/flowsupport/labels

Legt ein Label in einem Postfach an. Verlangt mindestens die Stufe reply. Ist die Synchronisierung mit WhatsApp aktiv, gilt die Obergrenze von 20 Labels je Postfach.

Request Body:

inbox_uuid string * Das Postfach, zu dem das Label gehört.
name string * Der Name, höchstens 100 Zeichen.
color integer * Die Farbe aus der Palette des Kanals, 0 bis 19.

Ein Label umbenennen oder umfärben

PATCH /api/flowsupport/labels/{uuid}

Ändert Name und Farbe. Das Postfach eines Labels ist nicht änderbar.

Request Body:

name string * Der Name, höchstens 100 Zeichen.
color integer * Die Farbe, 0 bis 19.

Ein Label löschen

DELETE /api/flowsupport/labels/{uuid}

Löscht das Label und entfernt es von allen Unterhaltungen des Postfachs.

Antwortvorlagen auflisten

GET /api/flowsupport/templates

Die sichtbaren Textbausteine, am häufigsten benutzte zuerst. may_edit sagt, ob dieser Schlüssel die Vorlage auch ändern darf.

Query-Parameter:

per_page integer Einträge pro Seite, 1 bis 200, Standard 50.
page integer Seitenzahl, Standard 1.

Eine Antwortvorlage anlegen

POST /api/flowsupport/templates

Legt einen Textbaustein an. Ohne inbox_uuid gilt er teamweit. Wird er an ein Postfach gebunden, verlangt das mindestens die Stufe reply auf genau diesem Postfach.

Request Body:

name string * Der Name, höchstens 120 Zeichen.
content string * Der Text, höchstens 5000 Zeichen.
is_private boolean true hält die Vorlage bei ihrer Verfasserin. Standard ist false.
inbox_uuid string Bindet die Vorlage an ein Postfach.

Eine Antwortvorlage ändern

PATCH /api/flowsupport/templates/{uuid}

Schreibt Name, Text und Sichtbarkeit zusammen. Ändern darf sie die Person, die sie verfasst hat, und der Inhaber des Teams. Das Postfach einer Vorlage ist nicht änderbar.

Request Body:

name string * Der Name, höchstens 120 Zeichen.
content string * Der Text, höchstens 5000 Zeichen.
is_private boolean Sichtbarkeit. Ohne Angabe bleibt der bisherige Wert.

Eine Antwortvorlage löschen

DELETE /api/flowsupport/templates/{uuid}

Löscht den Textbaustein. Es gelten dieselben Rechte wie beim Ändern.

📊 Auswertungen

Jede Auswertung zählt nur Erreichbares
Ein Postfach, das dieser Schlüssel nicht sieht, taucht in keiner Zahl auf. Der Filter inbox_uuid schränkt diesen Rahmen weiter ein; ein Postfach außerhalb davon antwortet mit HTTP 404.

Offene Unterhaltungen

GET /api/flowsupport/reports/open

Was noch auf eine Antwort wartet: die Zahl der offenen Unterhaltungen, davon die unzugewiesenen, und die zwanzig zuletzt aktiven als Liste.

Query-Parameter:

inbox_uuid string Auf ein Postfach einschränken.

Zuständigkeiten

GET /api/flowsupport/reports/assignments

Wer wie viele offene Unterhaltungen trägt, und wie viele davon auf den eigenen Schlüssel entfallen. Die Zeile mit user_uuid null sammelt die unzugewiesenen.

Query-Parameter:

inbox_uuid string Auf ein Postfach einschränken.

Zustellwarteschlange

GET /api/flowsupport/reports/outbound

Die Zahl der Einträge je Zustellzustand, damit eine noch nicht zugestellte Antwort sichtbar ist, bevor eine weitere geschrieben wird. Nachrichtentexte gehören nicht dazu.

Query-Parameter:

inbox_uuid string Auf ein Postfach einschränken.