Massen-E-Mail ohne Duplikate

Stellen Sie sich vor, ein Mitglied hat Gruppen und Unterkategorien ausgewählt, an denen es interessiert ist.

Ich möchte eine Ankündigung an diejenigen senden, die entweder diese Gruppen oder Unterkategorien ausgewählt haben.

Beispiel: In einer Stadt, die aus der globalen Hauptstadt, mehreren Bezirken und Angelegenheiten besteht.

Der Benutzer kann auswählen:

  • Eine bestimmte Angelegenheit (die als allgemeine Gruppe fungiert),
  • Eine Gruppe in seinem Bezirk für diese Angelegenheit,
  • Eine Gruppe in zwei anderen Bezirken für diese Angelegenheit,
  • Eine zweite spezifische Angelegenheit (die als allgemeine Gruppe fungiert),
  • Alle Gruppen in allen Bezirken für diese Angelegenheit,
  • Die Hauptgruppe für die Hauptstadt;

Wenn ich eine E-Mail an eine oder mehrere Gruppen oder Unterkategorien in diesen Gruppen senden möchte, erhalten einige Benutzer möglicherweise mehr als eine E-Mail derselben Ankündigung, insbesondere wenn die Person die Hauptstadtsgruppe ausgewählt hat, die die Informationen aus allen Bezirken weiterleitet, sowie einige Untergruppen usw.

Die Frage: Wie kann ich eine E-Mail-Aktion vorbereiten, die mehr als eine Zielgruppe und Unterkategorienliste umfasst, ohne Duplikate, und diese Nachricht senden?

  1. Benötige ich ein externes Skript?

  2. Benötige ich einen externen E-Mail-Prozessor?

Danke

Marc

Wenn Sie eine garantierte, duplikatfreie Zustellung über beliebige Gruppen und Kategorien hinweg benötigen, müssen Sie Folgendes tun:

  • Benutzerlisten aus den Zielgruppen oder Kategorien exportieren.
  • Diese Listen manuell oder mithilfe eines Skripts zusammenführen und deduplizieren.
  • Einen externen E-Mail-Prozessor verwenden, um die Nachricht an die deduplizierte Liste zu senden.

Dies ist der robusteste Weg, um sicherzustellen, dass Benutzer dieselbe Ankündigung nicht mehrmals erhalten.

Danke, wissen Sie, ob wir das automatisieren können, z. B. die API auffordern, Nachrichten für jede neue Mitgliederregistrierung/jeden Rückzug oder jede Gruppen-/Kategorieauswahl zu erhalten, und nur die neuen Änderungen ODER (weniger gut) die gesamte Liste mit ihrer Gruppe/Kategorie zu erhalten, die von einem Python-Programm angefordert werden kann? (Ich kann Python programmieren). Die Frage betrifft eher die automatische Kommunikation zwischen Discourse und Python UND Python und Mailing-Prozessor.

Discourse bietet eine robuste REST-API, mit der Sie:\n\n* Alle Benutzer, Gruppen und Benutzer-Gruppenmitgliedschaften auflisten können\n* Neue Benutzerregistrierungen und Gruppenbeitritts-/Austrittsaktionen überwachen können (per Abfrage oder Webhooks)\n* Konfigurationen für die Kategoriezugehörigkeit abrufen können\n\nSie können entweder die vollständige Liste abfragen oder versuchen, kürzliche Änderungen zu verfolgen. Für eine vollständige Erkennung inkrementeller Änderungen müssen Sie möglicherweise zeitbasierte Prüfungen implementieren und Unterschiede lokal verwalten. Die Authentifizierung erfolgt über HTTP-Header (Api-Key, Api-Username).\n\nFür eine effizientere und integriertere Steuerung empfehle ich jedoch die Erstellung eines benutzerdefinierten Discourse-Plugins. Ein Plugin läuft innerhalb der Discourse-Serverumgebung und bietet direkten Zugriff auf die internen Komponenten von Discourse, wie z. B.:\n\n* Aktualisierungen der Benutzer-, Gruppen- und Kategoriezugehörigkeit\n* Lifecycle-Event-Hooks für Registrierungen und Gruppenänderungen\n* Direkter Zugriff auf die internen APIs und die Datenbank von Discourse\n\nDieser Ansatz bietet Ihnen Echtzeitfunktionen und größere Flexibilität bei der Implementierung automatisierter Workflows wie E-Mail-Verarbeitung oder Benutzersegmentierung.

Können wir ein Plugin erstellen, das auch auf unserer Instanz funktioniert, wenn diese von Discourse gehostet wird, oder müssen wir es selbst hosten?

Wenn es sich um ein inoffizielles Plugin handelt, können Sie es meines Wissens nur im Enterprise-Plan installieren, andernfalls müssen Sie es selbst hosten.

  • Dynamische Listen (Benutzer-/Gruppen-/Kategoriedaten) generieren und innerhalb von Discourse anzeigen oder speichern.
  • Daten in eine Datei exportieren oder herunterladbare Admin-Berichte erstellen.
  • HTTP(S)-Anfragen an einen anderen Server stellen (z. B. Benutzerlisten-Updates an Ihr Python/E-Mail-Tool senden).
  • Webhooks auslösen, Aufgaben planen oder direkt in externe APIs integrieren – alles von innerhalb von Discourse, ohne dass ein Abruf erforderlich ist.

@EMHmark7 Hast du herausgefunden, wie du das zum Laufen bringen willst?

In Discourse ist eine Möglichkeit, das zu erreichen, das Erstellen von Kategorien und das Ermöglichen, dass Community-Mitglieder diese Kategorien “abonnieren”, indem sie die Benachrichtigungsstufe “Beobachten” wählen. Die Optionen Standardkategorien beobachten oder Standardkategorien beobachten erste Nachricht sind praktisch, um eine Ankündigungskategorie auf deiner Website zu haben, um alle auf deiner Website zu erreichen.

Ich glaube, es gibt Möglichkeiten, das oben Genannte basierend auf Gruppenzugehörigkeit oder anderen Kriterien zu verwalten, aber ich habe es schon eine Weile nicht mehr selbst gemacht – vielleicht hat jemand anderes ein Rezept, das er teilen kann.

Ein anderer Ansatz ist, die Gruppen direkt per PM anzuschreiben – wenn du eine Handvoll Gruppen per PM anschreibst und dasselbe Mitglied in mehreren Gruppen ist, wird es keine Duplikate geben.

Aber es klingt für mich, als ob du vielleicht ein anderes Werkzeug suchst, wenn du nicht ein Forum oder eine Community suchst, in die sich Leute einloggen, um an Diskussionen teilzunehmen, sondern eine Reihe von Mailinglisten, die E-Mails versenden.

All das kann im Code außerhalb von Discourse leben, sodass du es nicht installieren musst. Wenn du WordPress verwendest, kannst du vieles davon kostenlos mit GitHub - discourse/wp-discourse: WordPress plugin that lets you use Discourse as the community engine for a WordPress blog erhalten und dann ein weiteres WordPress-Plugin verwenden, um den Mailinglisten-Teil zu handhaben.