Listmonk Smart-Home-Integration, kostenlos und Open Source

Abonnenten, Kampagnen und Öffnungen deines Listmonk in Gladys, mit Szenen bei neuen Abonnenten.
Listmonk ist ein selbst gehosteter Newsletter- und Mailinglisten-Manager, quelloffen (AGPL-3.0). Diese Integration bringt deinen Newsletter in Gladys: Die Listmonk-Instanz wird ein Gerät (erreichbar oder nicht, Abonnenten, Neuzugänge und Abmeldungen des Tages, gesendete Nachrichten, die laufende Kampagne und ihr Fortschritt, Öffnungs- und Klickrate der letzten Kampagne), und jede gewählte Mailingliste wird ein Gerät mit ihren Abonnenten und Abmeldungen. Szenen können auf einen neuen Abonnenten, eine Abmeldung oder eine beendete Kampagne reagieren, und eine Szenenaktion startet oder pausiert eine Kampagne. Ein Dashboard-Widget zeigt die Zahlen und die letzten Kampagnen.
Getestet mit einem echten, selbst gehosteten Listmonk 6.2.0 (Docker, PostgreSQL), mit einer wirklich gesendeten, pausierten und fortgesetzten Kampagne; Rückmeldungen sind willkommen in den Issues.
Was du brauchst
- Gladys Assistant 5.1.0 oder neuer.
- Listmonk 4.0 oder neuer (API-Benutzer), vom Gladys-Rechner aus erreichbar.
- Einen API-Benutzer von Listmonk und sein Token.
Bei jeder Aktualisierung sendet die Integration sechs leichte Anfragen (Dashboard-Zähler, Listen, die 20 neuesten Kampagnen, die 20 neuesten Abonnenten, zwei Tageszählungen), unabhängig von der Größe deiner Instanz.
Erste Schritte
1. Einen API-Benutzer anlegen
Öffne in Listmonk Admin → Benutzer → Neu, wähle den Typ API, einen
Namen (zum Beispiel gladys) und eine Rolle, dann speichern: Listmonk zeigt
das Token nur einmal an, kopiere es.
Die Rolle bestimmt, was die Integration sieht und tut. Lesen braucht die
Berechtigungen subscribers:get_all, lists:get_all, campaigns:get_all; die
Tageszahlen brauchen subscribers:sql_query (ohne sie funktioniert alles
andere); Kampagnen starten und pausieren braucht campaigns:send und
campaigns:manage_all.
2. Die Integration konfigurieren
Öffne in Gladys Integrationen → Listmonk → Konfiguration:
- Listmonk-Adresse: die Adresse, mit der du Listmonk öffnest, zum Beispiel
http://192.168.1.10:9000oderhttps://listen.example.org. Eine mit/admin/...kopierte Adresse wird verstanden. - API-Benutzer und API-Token: die aus Schritt 1.
- Aktualisierungsintervall: 1 bis 10 Minuten (standardmäßig 2 Minuten).
- Starten und Pausieren von Kampagnen erlauben: standardmäßig aus. Ohne diese Option wird die Szenenaktion abgelehnt.
- Sprache der Namen: die Sprache der Funktionsnamen, beim Anlegen eines Geräts festgelegt, des Kampagnenstatus und der Szenen-Meldungen.
Verbindung testen liest Listmonk und antwortet mit der Zahl der Abonnenten, Listen und Kampagnen.
3. Die Instanz und die Listen anlegen
Öffne den Tab Entdecken der Integration: Er listet die Listmonk-Instanz und deine Mailinglisten. Lege die Instanz an, und die Listen, die du verfolgen willst.
Die Geräte
Die Listmonk-Instanz:
| Funktion | Was sie zeigt |
|---|---|
| Erreichbar | 1, wenn Listmonk antwortet, 0 nach zwei fehlgeschlagenen Abfragen in Folge |
| Abonnenten | alle Abonnenten der Instanz |
| Gesperrt | die gesperrten Abonnenten |
| Neue Abonnenten heute | die heute (ab Mitternacht) angelegten Abonnenten |
| Abmeldungen heute | die Abonnenten, die heute mindestens eine Liste verlassen haben |
| Gesendete Nachrichten | die Kampagnen-Nachrichten, die gesendet wurden, seit Listmonk zählt |
| Kampagne | die gerade gesendete oder pausierte Kampagne, sonst die zuletzt gesendete oder abgebrochene, mit ihrem Status |
| Kampagnenfortschritt | ihre gesendeten Nachrichten, in Prozent der zu sendenden |
| Öffnungsrate (letzte Kampagne) | Öffnungen der letzten gesendeten Kampagne, in Prozent ihrer Nachrichten (wiederholte zählen) |
| Klickrate (letzte Kampagne) | Klicks der letzten gesendeten Kampagne, in Prozent ihrer Nachrichten |
Jede angelegte Liste:
| Funktion | Was sie zeigt |
|---|---|
| Abonnenten | die bestätigten und unbestätigten Anmeldungen |
| Abgemeldet | die Abonnenten, die sich von dieser Liste abgemeldet haben |
„Heute“ beginnt um Mitternacht in der Zeitzone von Gladys.
Dashboard
Das Widget Listmonk-Kampagnen zeigt die Abonnenten, die Zu- und Abgänge des Tages, dann die letzten Kampagnen: wird gesendet (gesendete / zu sendende Nachrichten), pausiert, gesendet (Nachrichten und Öffnungsrate), Entwurf. In seinen Einstellungen wählst du die Zahl der Kampagnen (3, 5 oder 8) und blendest die Zahlen oder die Schaltfläche Aktualisieren aus, die Listmonk neu liest.
Szenen
Auslöser
- Neuer Abonnent: Ein Abonnent wird in Listmonk angelegt (Anmeldeformular, Import, API), einmal pro beigetretener Liste. Wähle die Listen (leer: alle). Variablen: Name, E-Mail-Adresse, Liste. Bis zu 20 neue Abonnenten pro Aktualisierung werden gemeldet: Nach einem großen Import werden die übrigen gezählt, nicht gemeldet.
- Abmeldung: Abonnenten verlassen eine Liste (oder werden gesperrt). Wähle die Listen (leer: alle). Variablen: Liste, neue Abmeldungen, abgemeldet insgesamt, verbleibende Abonnenten.
- Kampagne beendet: Eine Kampagne wurde an alle Abonnenten gesendet. Variablen: Kampagne, Betreff, Listen, gesendete Nachrichten, Öffnungen, Klicks.
Aktionen
- Kampagne starten oder pausieren: startet eine Kampagne im Entwurf oder in
Pause, oder pausiert eine Kampagne, die gerade gesendet wird. Gib ihren
genauen Namen an, oder ihre ID mit
#(in Listmonk angezeigt,#12). Eine bloße Zahl wie2025gilt als Name oder ID: Die Aktion lehnt ab, wenn es beides gibt. Eine schon laufende Kampagne starten oder eine schon pausierte pausieren tut nichts. Ausgaben: Kampagne, Kampagnen-ID, neuer Status. Abgelehnt, solange „Starten und Pausieren von Kampagnen erlauben“ aus ist: Eine Kampagne zu starten schickt echte E-Mails an alle Abonnenten ihrer Listen.
Szenen-Ideen
- Eine Benachrichtigung für jedes neue Mitglied deines Vereins: Auslöser Neuer Abonnent auf der Liste „Vereinsmitglieder“, Nachricht mit dem Namen.
- Den vorbereiteten Newsletter am Samstag um 9 Uhr senden: Kampagne starten oder pausieren, Name der Kampagne, Befehl Starten.
- Das Ende eines Versands melden: Auslöser Kampagne beendet, Nachricht mit den gesendeten Nachrichten.
Fehlerbehebung
- „Listmonk antwortet nicht“: Prüfe die Adresse und ob Gladys den Server erreicht (gleiches Netz, Firewall, Port).
- „API-Benutzer oder Token abgelehnt, oder eine Berechtigung fehlt“: Prüfe den Namen des API-Benutzers und sein Token (Listmonk zeigt es nur beim Anlegen: Lege einen neuen an, wenn es verloren ist) und die Rolle des Benutzers.
- Keine Tageszahlen: Der Rolle des API-Benutzers fehlt
subscribers:sql_query; Verbindung testen meldet es. - „keine Listmonk-API unter dieser Adresse“: Die Adresse zeigt auf etwas anderes: Nutze die, mit der du Listmonk öffnest.
- „die Adresse leitet um“: Gib direkt die
https://-Adresse ein. - „Zertifikat abgelehnt“: Das HTTPS-Zertifikat ist selbst signiert oder
abgelaufen: Nutze die
http://-Adresse im lokalen Netz oder ein vertrauenswürdiges Zertifikat. - Die Protokolle zeigen nie einen Abonnenten: weder Namen noch E-Mail-Adresse.
Grenzen
- Nur Listmonk 4.0 oder neuer (API-Benutzer). Die Öffnungsrate zählt die Öffnungen, die Listmonk erfasst (ein Tracking-Pixel): Wiederholte Öffnungen zählen, Mail-Programme, die Bilder blockieren, werden nicht gezählt.
- Ein Abonnent, der nach seiner Anlage einer Liste hinzugefügt wird, löst Neuer Abonnent nicht aus: Nur neue Abonnenten tun es. Abmeldung gibt die Zahl der Abgänge an, nicht wer gegangen ist.
- Kampagne beendet verfolgt die 20 neuesten Kampagnen.
- Entwickelt mit einem Listmonk in Docker und den Testwerkzeugen von Gladys, nicht auf einer produktiven Gladys-Instanz: Rückmeldungen sind willkommen.
Konfigurationseinstellungen
Diese Einstellungen fragt Listmonk in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Dein Listmonk | section | Nein | Die Adresse deines Listmonk und ein API-Benutzer: In Listmonk Admin → Benutzer → Neu, Typ „API“, dann sein Token kopieren. Lege danach die Instanz und die zu verfolgenden Listen im Tab „Entdecken“ an. |
| Listmonk-Adresse | string | Ja | Die Adresse, mit der du Listmonk im Browser öffnest. |
| API-Benutzer | string | Ja | Der Name eines API-Benutzers von Listmonk (Admin → Benutzer). |
| API-Token | secret | Ja | Wird beim Anlegen des API-Benutzers einmal angezeigt. Die Tageszahlen brauchen die Berechtigung subscribers:sql_query. |
| Optionen | section | Nein | |
| Aktualisierungsintervall | select | Nein | Wie oft Listmonk gelesen wird: jedes Mal sechs leichte API-Anfragen. |
| Starten und Pausieren von Kampagnen erlauben | boolean | Nein | Aus: Die Szenenaktion „Kampagne starten oder pausieren“ wird abgelehnt. Eine Kampagne zu starten schickt echte E-Mails an alle Abonnenten ihrer Listen. |
| Sprache der Namen | select | Nein | Sprache der Funktionsnamen (beim Anlegen eines Geräts festgelegt), des Kampagnenstatus und der Szenen-Meldungen. |
So installierst du Listmonk in Gladys
- Öffne in Gladys Integrationen: Listmonk erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-listmonk:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-listmonk.
Listmonk benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
Listmonk ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation